Welcome to FPGA, an easier path to parallelism for Postgres. In this webinar, we're going to explain FPGA acceleration for Postgres, how FPGA database acceleration works, why it's likely to be a hot DVMS topic in 2020, and how to apply it in your Postgres deployments. My name is Lindsay Hooper, and I'm one of the Postgres conference organizers and your moderator for this webinar. I'm here with Sebastian Dressler, Solutions Architect at Swarm64, and Andy Ellicott, Sheep Marketing Officer at Swarm64. Sebastian has a wealth of experience in connecting hardware with software to build creative solutions. He's a Solutions Architect at Swarm64, helping customers fully understand how to fit Swarm64 technology into their environments. Sebastian holds an MSC from the TU Berlin in computer science, and Neil Vim is his favorite editor. Andy has been, has spent over 20 years launching and growing adoption of new databases. He's held executive product strategy and developer advocacy roles at Crade.io, Cloud and IBM, Vertica, VoltDB, and others. He enjoys being on the forefront of DVMS technology because he enjoys working with the early adopters. Those in the Software Development Vanguard who are transforming the way we work and live. With that, I'm going to hand it off to Sebastian and Andy. Go ahead and take it away. Thank you, Lindsay. This is Andy, and I want to thank everybody for joining us today to learn about accelerating Postgres with FPGA hardware acceleration. The next slide, we're going to, just a quick introduction to Swarm64 since some of you may not be that familiar with us, but we are a bunch of hardware programming and parallel processing nerds, mainly from Berlin, Germany, but also Boston and the Bay Area, and we're in the business of extending writing extensions for free open source Postgres that speed it up so that you could do more with the database. Next slide, please. Our agenda today is hopefully to, in the next 45 minutes, help you learn some new ways to get more out of Postgres and really improve Postgres performance by quite a lot. Specifically, we will talk about field and programmable gate arrays FPGA, what those are, why you should care about them now, which use cases you should apply them in and how it all works, really how they bring along with the embedded software that Swarm develops, runs on the FPGA, greater parallelism, calendar indexing, and a whole bunch of other goodies to Postgres that speed up its performance in a lot of different use cases. After I go through that, I'm going to turn it over to Sebastian and my much better half, who will take you through a iterative exercise of scaling in, scaling out, and then scaling in, actually with FPGA and Postgres to show you how the performance changes as you start to scale out and then accelerate and then scale out again with FPGA. Then we'll close with Q&A. So, talking about faster Postgres, why do people talk to us about this? This is a little bit red and butter. The obvious is they either have more users that they want to allow to query or interact with the database concurrently or more data. For those, faster answers, more people, more data, what FPGA acceleration usually provides is a 15x to some cases as high as over 100x faster query response and data ingestion. And for companies or people with old data warehouse appliances who want to migrate those to or modernize those with free open source or SaaS companies who have expensive cloud data infrastructure costs, who'd like to cut those by anywhere from 30% to 80% and increase the profitability of their SaaS business. FPGA acceleration is critically important to those people. And then I think for all of us who love Postgres and want to use it anywhere we can, and it really allows people to use Postgres in more use cases outside its sweet spot in transaction processing workloads and instead of migrating on to commercial alternatives or other open source databases. So sticking with free open source Postgres is one of our favorite reasons to be in business, to help people out. And the timing of this is really important because if you follow Gartner and research, you may have seen their state of open source database report, I think it was last October. And one of the predictions they made was based on the research is that within two years from now 70% of new projects are going to be running on open source databases and half of the databases that are commercial databases that are running today will have been replaced by free open source databases. So what we're seeing is a lot of companies, especially the bigger ones, big enterprises have data modernization initiatives to help them make this transformation and things like FPGA acceleration, some of the other acceleration solutions we offer come at a great time because it allows companies with these extreme workloads like data warehousing or larger SaaS applications or unusual data to accelerate free open source Postgres to meet these needs and achieve the savings and economic benefits of moving to open source. So now let's turn a little bit to FPGA specifically and let's start with kind of a why you should care. And this is when your Postgres hits a wall if you're using it today or you're thinking about using Postgres for a project that you're not sure if it's going to kind of get there or you've tuned it as far as you can go. What we've been conditioned to do over the last 10 to 15 years is think of further back. Most people say the next step is to do one of the two strategies that you see here. One is the kind of the more most traditional which is I'm going to move my Postgres database from say a machine with eight cores on it to a machine with a bigger server. Safe, easy, straightforward, kind of expensive and usually a little bit short term just because you tend to keep outgrowing the servers as your business and application grows. More recently it's become fashionable and usually more economically beneficial to do a scale out. So to kind of move your data to a distributed database whether it's Postgres or something else. The costs, the hardware costs are linear in that case versus a little quite a bit steeper in the scale up. But it can be difficult to choose a distribution strategy or even a distributed database. I have the right sharding, the right database, the right machines and plus what do I do for failover and blah blah blah. It's an administration database administration challenge for sure. But what people are, you step back and think about it, no matter which path you take, people are generally on the same quest. And what they are after is for more parallelism, more cores. So whether you go from a machine with eight cores in it to a single machine with 48 or you go with the same machine to a cluster of six machines with six similar machines, five more similar machines to get your 48 cores, you're really trying to get more parallelism like opening more checkout lines at a busy grocery store to just get more of those requests, satisfied scale easier and so on. And what people don't realize or what they're starting to realize and what we're going to talk about today is there's a much easier option to gain that parallelism and that is by dropping a FPGA thing into your server if you have your own data center or even though this is kind of a form of scaling up, moving to a cloud instance like an Amazon F1 which are FPGA equipped and Microsoft and others are starting to introduce FPGA equipped servers, but moving to servers that have FPGAs in them. And just if you take nothing else away from this session today, it's just knowing that by dropping an FPGA or moving to a machine, an FPGA equipped server, it can be like adding 100 cores to your server with the right FPGA software running on that device. And you'll kind of get an easy quick acceleration of query and ingestion from anywhere from probably 15 to 155x. Okay, next slide. So let's say, so what is FPGA? Just a short primer here. So FPGA stands for Field Programmable Gate Array. It's an integrated circuit that you can add to your server or that is installed into a cloud server like the Amazon F1. And what makes the FPGA unique is that it's a lot of processing force power, but it's not out of the box. It's not designed to do anything, right? So the beauty of it is really in the FP part, the field programmable part, which means that when at runtime, the software is loaded onto the FPGA firmware image is loaded onto the FPGA to allow it to become a custom processor like an ASIC or an application specific integrated circuit. So if that FPGA IC is loaded with the Swarm64 Postgres Accelerator, that FPGA now becomes basically a custom processor that does, it is completely focused on speeding up queries and data insertion, things like that for Postgres. Okay, that software really runs it near firmware speed. And the other nice thing is that it supplements the CPU. So for those of you who are in the habit of if you have a Postgres server that's going to be updating data, so kind of transaction heavy transaction processing, but also you want to enable some reporting and querying on that server. And if the querying and transaction processing interfere with the performance of each other, what people almost always do is just set up separate servers, one for transactions, one for reporting, and they set up a bunch of ETL in the middle to move data, to keep the two databases, two servers synced. With FPGA, you can get away from that and actually deal with mixed workloads much more easily, right, where the CPUs continue to do the transaction processing that they do that Postgres does and the querying gets offloaded to the FPGA which is working independently of the CPU. So really handle mixed workloads and we'll go into that in a little more detail. Next slide. Okay, so a couple of facts about FPGA. If you're number one, the processing power of PGA has grown a lot more rapidly over the last 10 years than it has for CPUs, about 500x more powerful over the last decade compared to CPUs, which are only about 32. If you're in the data warehousing space, FPGAs are also widely available to you. For those of us running Postgres on the cloud, really running your own Postgres servers, and not necessarily as a Postgres as a service from say Aurora or RDS. F1 equipped servers in the cloud or instances in the cloud are pretty affordable and very accessible on a Amazon, I think Azure, soon if not already, Alibaba, Baidu, I think also offer them.   So the idea of speeding up Postgres for data warehousing workloads with FPGA actually goes back about 15 years. And today, or actually as of late or last November at re-invent, Amazon revealed that they are a new Redshift instance, the Aqua instance, the accelerated or the Amazon Query Accelerator instance that speeds up Redshift query processing with FPGAs as well. So FPGA acceleration for databases is tried and true, and companies like database leaders like Amazon are embracing it now to speed up cloud databases and Swarm64 makes it possible for Postgres community to do the same with Postgres, and they're actually companies similar to Swarm that offer FPGA acceleration for other databases out there. So it's a long story short, FPGA is not, even though it's rocket science, it's easy to adopt and affordable and proven and widely available to people on the cloud and in the data center. Next slide. Okay, so next question is how does this work with Postgres? I'm going to go over it kind of high level. Sebastian will go into it at a deeper level later in the session today. But so that we're going to talk about one of our offerings, the Swarm64DA data accelerator. It's an FPGA acceleration extension for Postgres, works with free standard Postgres as well as enterprise DBs version of Postgres. And when you start it, start it all up after installing it, Swarm64 will do one of two things. First of all, there's an extension that starts up and it interfaces with the query engine in Postgres, and for queries that it sees it can accelerate, it will develop a much more parallel query execution plan and execute that. So from the very beginning of the query plan is highly parallel and then it sends that query to the FPGA to be executed where you have 100 plus SQL reader and writer processes working in parallel, scanning and filtering data, compressing and decompressing data. And then today, those queries are operating on data that's stored in a foreign data table in Postgres that the format of that table is really optimized for parallel access. So number one, it's columnar index, which I think we all should know by now is really lends itself well to fast querying. And in addition to that we chunk up the data just into ranges to reduce IO and increase parallelism of IO and processing. So in a nutshell, that's how we work, integrating with the Postgres query engine and offloading, creating parallel plans, offloading that to the FPGA for execution and processing those queries against columnar indexed data format in a foreign data table. Excellent. So the result, okay, so what can you expect there? In the TPCH benchmarks, roughly speaking for to execute the whole suite of query or like the 20 of the 22 queries that we can execute, Postgres can execute. We have a scale factor of 1000, which is a terabyte of data. We run about 16x faster to execute the whole suite. Some queries work a little bit faster than Postgres. A lot of them work quite a bit faster than a few work astronomically faster, like 50x or higher. But overall, you're talking about 18 minutes versus an hour and a half. And this test was executed, this is Postgres 11. Underload, I think with about 10 concurrent users, the less fast, but 14x faster. But standard benchmark, this is kind of a rough like what you should probably expect. But next slide, your mileage may vary depending on the type of data and concurrent load and all sorts of things. What we've seen in customer work is things like IoT sensor readings in kind of a time series, very much a time series use case, inserting over a million rows per second slightly faster than some time series databases we've been benchmarked against. The transformations mainly querying, aggregating data into bigger chunks of kind of time. Generally 16x faster. Post-GIS, big automobile manufacturer testing that. They found about, allowed them to achieve the same performance under heavy load, concurrent load with a cluster that was a third the size of what they were using. Individual, and other demos we've seen other queries there go up again about 55x faster. And then another insurance company that was benchmarking. FPGA accelerated Postgres against a data warehouse appliance, 10 terabytes of data. For queries that had been highly tuned in the data warehouse appliance, the performance was about the same, but the cost was much, much lower. And for ad hoc queries, the performance was generally quite a lot higher in the FPGA, the modern FPGA accelerated Postgres than it was with the old appliance. So again, rule of thumb expect probably a 15x boost in query and ingestion performance, but again maybe go up or down depending on your use case. Okay, so most people when they hear about FPGA and hardware acceleration, they really think acceleration, it's going to make it go faster. And yes, that's what we've been talking about. But there's a very interesting capability that FPGA offers that we are starting to take advantage of. And that's really the FP in FPGA or the field programmability gives us the ability to change the, in about a second or two, to change the software image that's running on the FPGA chip. And that enables what we call shapeshifting, while it's Postgres to shapeshift and become something very different. Like you see, if you notice the animation there, but by default, Swarm64's FPGA image is mainly readers, right, about 85% read processes and maybe 15% write processes. But we can replace the image, the default image with one that flips that so that the database goes from a, you know, kind of a query mostly, right, you know, by day serving all those end user queries, et cetera. And then by night becomes, we call the werewolf mode becomes like a data loading and ingestion beast. Okay.  And before you turn kind of re-enable querying. And with this shapeshifting, right, ability to change the strength of Postgres within a second, you can see here that in a small benchmark of querying and data loading, we really reduce the data load window by about 75%. And if we take that even further, okay, this is kind of a little bit more R and D in our labs right now. You know, I think, again, over the last 15 years, we've been conditioned that there are special use cases require specialized databases.  What we can do and are doing is creating FPGA images that accelerate specific types of workloads like geospatial, like tech search, right, and others. And the beauty of this, eventually, can't say today, but, you know, imagine some time from now, it would not be far-fetched or unreasonable to say that you can use Postgres for everything. And you start to, instead of specializing your database for workload, you specialize the accelerator that's speeding up Postgres in certain types of use cases. So FPGA is very interesting, you know, beyond the reprogrammability of it is interesting beyond just the pure acceleration. Okay. So that, with that said, I'm going to turn it over to Sebastian, who's going to take it a little deeper and go through a process of scaling in and out with that FPGA. Sebastian. Thanks, Andy, for the nice introduction and giving a brief overview here. And you're jumping in a bit more technical. And for that part, I think it makes sense if you just imagine probably some of you are, if you're thinking about being a DBA of some company, which we call Company X here. And that company basically does store and analyze data for reporting and analytics.  And those people want to run queries during the day. And to make them basically work productive in a productive manner and in a very efficient manner, it's of highest importance that the query run times are really low. And at the same time, your data is probably constantly growing. So you want to also keep those query run times low. And at the same time to that, basically, it could be also that you're hiring more people, for instance. So your database experience is much more low. And the core question we are asking here is, how complex is the solution you pick to solve this particular issue? And in order to assess, to get to the core values of a solution you want to pick, you need to somehow standardize and you need to somehow evaluate different solutions. And for that, we are typically using benchmarks, obviously. And we picked here the DPCH benchmark, which is the industry workhorse basically in terms of data warehouse. It's consisting in our case of a terabyte of data roughly, which sums up to seven and a half billion rows overall. And you will show you certain configurations, you start off with a single node, and then we scale out a bit in order to get some more performance. And after that, we will then eventually see how it works with an accelerated database. Now, before we go into the joy of seeing something working, we reasoned a bit about how we could tune our Postgres for analytics. And there are basically two main parts, except for what Andy said earlier, adding a bigger machine or going to the scale out route. And the first things people typically do is adding indices to their data. Why? Because it helps them to access data faster by having more more punctual interaction with certain data types and certain joins and query patterns. And the downside of that is that sometimes it can cause you nonoptimal IO parents and your storage subsystem has a very hard time, especially if it's like, for instance, network backed. And you then, for instance, need to make your system more complex by, for instance, adding additional caching. Now, the other option is to add partitions to your setup that is typically used when you are getting to very large tables. So you start partitioning them. Why you do that? Because again, you want to lower the amount of data that is accessed somehow. And Postgres has this nice feature of partition pruning. And therefore, it's able to simply select essentially only the partitions you really wanted to select. Now, however, the downside here is that typically, Postgres also unfortunately limits parallelism at the moment. And you have sometimes a hard time if you want to change your partitioning scheme. Now, that's enough from theoretical perspective. We jump right into testing some things because that's what makes the most fun. And we have a little setup here, which is basically consisting of a single node, which is named here as coordinator one at the moment. And we show some graphs, most notably is here the CPU load that's ramping up in a few minutes. And we then on the other hand have certain queries we will start here. And basically at the moment, this is always the same query, which is one query of the TPCH benchmark. Because we want to first analyze how the overall system behaves when we just ramp up the load by simulating multiple users. This is a video I will start it now. And you see we are adding users here, which is like simulated as this little PC here. And as you can see, the coordinator does some work because the CPU is ramping up. So it starts basically processing this query and we speed it up the video a bit to make you not wait so long until the first results are there. And here it is already. So we see that this single query was processed within 670 seconds. And when we do the math, we boil down to roughly five queries per hour or five and a half almost. So this is roughly a metric what one analyst could do. And we are spinning up a second user and now to basically show how the system scales over different load metrics. And we see a jump of roughly 200 seconds here. So effectively, we reduce the throughput. We got some more parallelism. But both analysts have to wait longer in the end. So what we see here is now that we are at 10 queries per hour roughly. And both of these analysts, they would have to wait roughly 800 seconds until their query finished. Now the question we are asking ourselves is why is that? And now we basically jump into the details of the query. And this is query number six for those who are familiar with TPCH. This is a very straightforward query. It basically does a scan only and some filtering. And if we reason a bit about this query, what could make it more performant? We basically find two things. Number one is we want to add statistics because statistics in that case help us to get data in a more directed manner. And the other thing we want to add obviously is parallelism to accelerate the scan part. And these are two things which are commonly doable by adding better statistics on Postgres itself. This is the lower part. And for scanning, we could simply choose a different option to get more speed out of our setup. And that option is typically, for instance, a scale of method. Why would I want to choose this? Because I, for instance, want to have a separation of concerns. So when we take query six again, then that scan part is a very IO intense part. And the final number crunching on the result is a very CPU intense part. And I could now build nodes into my system which are optimized for either of them. So I basically want to have a data node, which is very IO heavy. And I want to have a coordinator node, which is very CPU heavy. Now, what happens if my data grows? Well, that can then be handled more on those data nodes. And also I can handle more concurrent users and more demanding queries by adding more nodes to the system. And by that, I then fulfill my request. And that's also basically what I described node, a very typical scale out approach actually. So you split your nodes into two types. You have the coordinator nodes. The coordinator does not know anything about data itself. It only knows about meter data. So it basically knows how can I access the data. Now, when it needs to access data, it hands it off to the data nodes, which then perform the IO operation actually, and hand the data back. Now, sometimes they, those kind of nodes can also do something different. They can, for instance, pre aggregate or they can already filter some of the data and give them only a subset of data back to the coordinator in order to make the life of the coordinator easier in terms of number crunch. Because if you have less data to crunch, then you're effectively reducing your load on the node. And by that, you're making more space to do other valuable things. Now we prepared this, of course, because you want to show something again, we extended our setup a little bit. So this coordinator node stays, but it now shifts its purpose basically. And it does not need to do any disk IO anymore to fetch data, but it is now doing network, which we see in the top. And we have added two data nodes. So we essentially now created the scale out system with three nodes in total. And we just start this. And we are just repeating the experiment again. So we are adding a user. And we just will see what is happening. So in a moment, the query starts, we see this guy were happening here, which essentially means that there was the cash was not filled right now. And we see that we get some network traffic here towards the coordinator, speed it up again a bit. And we're waiting for the results. The reminder was roughly 650 seconds beforehand. And now in that case, we are going down to 280 300. So we got ourselves roughly a two X speed up here. And by that also improving the productivity of our analysts two times. And now the interesting question again is what happens if I add more users, if I scale up the workload again, and just see that in a moment. Now we speed it up again a bit. And we're waiting for the query returns here, a bit longer. And the result is there. So we are ramping up a bit. It's not that dramatic as before. So it's like 50 seconds difference here. But it's not not a 200 seconds we had before. And now we are adding another coordinator to the system in order to handle more load. And basically by that, also adding more users and at the same moment. And just repeating the experiment again. And now you see that the load based on four users and two coordinators or total system of four nodes is stable in comparison. So this is potentially a very nice setup here in terms of load balancing. Now the question is, we added complexity. Did we gain any value? What we've seen very clearly is we made the system obviously more complex. So we went from a single node to four nodes in total. And I of course have to maintain those four nodes and potentially there are much more nodes in the end in a real system because you also want to have high availability and failover and potentially routing of queries. So this made it very complex suddenly. And it's also obviously more expensive because four nodes or maybe eight nodes for full redundancy are not that much cheaper than a single node. Now, what did we get out of it? We basically got ourselves a 2x speeder. And by increasing the complexity four times, we only gained a two times result basically. So can we improve this somehow? And the answer is obviously yes, we can. By going the scale inside route, which form 64 offers, and we take a piece of hardware, which might look like this card here, which is displayed on the right hand side. And we add that card to our server. And by that scaling in the server with an FPGA device. And that helps us to not go this big iron route. We do not have to immediately migrate off to a different vendor. We can keep all open source database. And we can also deploy much smaller clusters because the scaling in does not mean for you that you need to, that you cannot scale out anymore. Because at some point, the data is so much that you basically need to find a different solution. But the scaling in helps you to push limits quite a lot. And as a bonus, it enables hybrid transactional analytics processing, where in that case, Postgres can do the transactional parts. It's very well suited for that. And the accelerator does the analytics for you. Now, coming back a bit to the previous statements regarding how do I tune Postgres for analytics with the two mentioned things, indexes and partitions, you can completely get rid of that basically. Why? Because our technology gives you a different type of index. This is actually what we call organized columns. And you can think of this as a range-based index. And they have a very low overhead because this is not a traditional index in the end. But it still enables you to fetch data more efficiently. And the same holds for partitions. You don't necessarily need them anymore. You can still use them, of course, if you have a need for that. But the data accelerator by itself gives you a higher throughput and more parallelism. Now to demonstrate this and do this now again on a single node system that you see, you have here what we call a split screen demo. So on the left side, you have Postgres with FPGA. On the right side, you have Postgres without an FPGA. And we are again taking query number six and we just run it again. So we repeat the same experiment this time just with a single user. So I start a video and you see it's running the queries. They are both the same on both sides of the screen. And we're waiting a bit and we see that the Postgres with the accelerator is done within 14 seconds. And now we need to wait a bit longer for Postgres with all the accelerator to finish. And you see it's taken quite a lot. It's taken longer than on the previous system. Now we're waiting already, putting 900 seconds. And there the result is. So in this particular case here with this particular setup, we gained ourselves roughly 100 times speed up if we compare those two values. So how does this work in detail? Or better say, how do we work together with the accelerator? And we're taking again query number six here and you see we start off with a parallel plan. Now that's nothing that unusual with Postgres. The difference though is that our plans can be much more parallel than you would expect it from a two-day Postgres plan. Plus we have some query rewriting techniques in our extension, which then also enable the plan to stay parallel to the end. Then this parallel plan is processed. And I already mentioned it, we have the concept called of optimized columns. And the optimized columns basically enable you to only fetch the blocks you need. So this is a hybrid row column store. So basically the filter condition we see down here determine which blocks you want to fetch from the disk. And those blocks are lined with each other so that you can make a continuous fetch and you don't see those, for instance, scatter, gather IO patterns. Now when we have the blocks, they are streamed through the FPGA accelerator device and their first decompress there. So the storage is also compressed. Typically, in average, we are seeing between two and three times, four times compression. In some extreme cases, we can even get to five times compression that depends a bit on the data. So it's decompressed. The decompression happens entirely on the FPGA device. So this is not loading your CPU here. And then the FPGA picks the columns it needs. So you push down the select statement essentially here. And then eventually it starts filtering the rows. So you can see the optimized columns as a coarse-grained filter. And the FPGA does the fine-grade filtering. And whatever is then left over from this line item table here is sent back to the CPU where it basically stays in RAM and cache. And essentially then the CPU processing kicks in. And in that case, it applies the aggregation. So query number six does the sum over those two columns. And this is then your final result. Now the important here is that this is still streaming. So we are not storing anything on the FPGA device permanently, but the data is streamed at all times. And the data also stays compressed in memory, which effectively increases the memory you have available to process queries. And for certain data sets, for instance, the TPCH 1TB, you can with a medium-sized machine roughly estimate that your whole data set is now cached. So the database in the end behaves very much like in-memory database. But even if you need to go to the disk because of compression and because of how we fetch the data from the disk, you still see the same effects as if you would have the data in memory already. Now a bit earlier I said you can still scale the solution out. And that's what we're showing here. So we have the same setup again as you've seen it already now. The difference now is that we are using Postgres with hardware acceleration. And the setup, by the way, is made with the Postgres foreign data wrapper. So it's fully open source. We have that available in GitHub as a patch. So if you want to try the setup out, you can get the patch, patch your Postgres, and then build a very much open source cluster without any third-party tools from other vendors. I'm just starting this video again here. And we repeat the experiment again. We add users and we see that there's a bit load on the disks now. The hardware accelerator starts loading because we process the data as said. We have some CPU load and we are already done within 14 seconds. And we now add, again, multiple users to the system in order to determine how stable this runtime is when we increase the load. So we have two users now and waiting again a bit. You see also, by the way, that the disk IO stops completely here because the dataset is cached by now already. And you see the runtimes are really stable. So we have now we went up from 12 seconds to 14 seconds. And that gives us a whopping 500 queries per hour. For those two active as an artist at the moment, we add one more to the mix to just see how this behaves. And as a reminder beforehand, we added one more coordinator to the node in order to stabilize the whole system. Now we are keeping it in one. And you see, we have really small increases on the query times. So these are really small. And the system behaves in a very stable manner. So in summary, what we've just shown you now is that we basically benchmark Postgres in a standalone version without any acceleration and our base measurement, which we will call here as 1x. Then we scale that Postgres out to a three to four nodes cluster. Depending on the system you want to show, we gained a 2.7x speed up by that. And then we scaled it out and accelerated that with the FPGA device. And that leads us to a 64x acceleration. Now, what does it mean? In the end, we increase the productivity 64 times with this particular query. As Andy mentioned, your mileage may vary. So different queries have some different behaviors. And the important point is also that you can now decide when to scale out. And essentially, you have fewer machines to maintain. And if you want to scale out, you can afford a much smaller cluster in the end, which is then even easier to maintain. For instance, a three nodes cluster in that case would be obviously easier to maintain as a 12 nodes cluster. And having said that, I hand it back to Andy. And thank you. Thank you, Sebastian. So just we'll quickly wrap up. And if you go to the next slide, please. So two things. Number one, where is this a best fit today? Is this a right for your project? As you may have gathered, just from what you've seen over the last 45 minutes, that this is really today, we're accelerating query intensive workloads, like customer-facing or just user-facing dashboard query dashboards, visualizations, if you're a SaaS or a cloud company, it's an opportunity to cut your cloud across by quite a bit. Data warehouse modernization, new GIS projects and so on. With our Amazon, you can launch an FPGA accelerated Postgres instance from the Amazon marketplace and pay for it on an hourly basis. We see that sometimes used by data scientists who just want to run certain models or just kind of crunch a lot of data in a short amount of time and then shut it off. And in some cases, we even see this used in or considered for use in continuous integration testing pipelines where they're doing a lot of database querying just to make sure there is a regression testing just to speed up their software delivery. Next slide. If you'd like to try FPGA accelerated Postgres, it just a couple of points. It works with Postgres version 11 and up, standard free Postgres or Enterprise DB's E-Pass. You can run it in your data center, get FPGA hardware from Intel or Xilinx free seller, also the Samsung Smart SSD, which is a new kind of hardware device that puts a small FPGA on your SSD board, which brings compute and storage very close together. It's very interesting. And as I mentioned before, you can run it on the cloud. Easiest way to do that. And actually, we offer free trial of just cover our website and request it. You've got a FPGA accelerated Postgres instance running within five minutes. Very easy way to give it a try. We have a TPCH toolkit. That's part of that. It allows you to populate the database full of data and some queries just to start experiencing the acceleration. And if you are like an advanced technologist or something in a larger company and who are an architect who has a lot of project teams coming to you for database recommendations, we offer a Swarm64 lab license, so non-production version of Swarm64. It's only about $500 a month and allows you to basically run tests on any kind of hardware to see whether FPGA accelerated Postgres is a good fit for the various project opportunities that come up at your company. And just I'm going to take one question here. That is, somebody asked whether you need to be an FPGA developer to use or know how to program an FPGA to use this. The answer is no. We've done that software development for you. Just install it. It's pretty plug and play. So I think with that, we will wrap up. Well, thanks, Sebastian, for co-presenting and sharing off his expertise. Thanks again to all of you for your interest in the topic and hope to see you again online in the future.


The UK has agreed to take 20,000 refugees from Afghanistan. Here we go again. This country is heading for conflict. We already have division. We already have growing crime. We already have people living in poverty. We already have Islamic extremism, Sharia, jihadism. And yet here we are, opening the borders for more. Once again, the interests of the British people are deemed less important than the interests of other people. The least important people in Britain are the British, especially the working class British. In a recent report, it was revealed that refugees to Britain are sent to live in the country's poorest areas. Does that surprise you? Doesn't surprise me. It works like this. The Guardian Reading class, the left-wing champagne socialists, campaign for more and more and more refugees. They do this because they know full well that these refugees won't be living anywhere near them. Here are the areas with the highest level of refugees so far. All areas that struggle financially as it is. There are parts of this country where poverty levels are high, where people can't get an NHS appointment, where the elderly can't afford to heat their homes. And it's into these parts of the country that refugees are sent. And that will be the case with Afghan refugees too. What's more, these Afghan refugees will go to the front of the queue. They'll be housed while British people waiting years for housing will be told to carry on waiting. There isn't an NHS left for anyone else, but there will be for Afghan refugees. That's what's going to happen. Afghans are already responsible for growing crime in Europe. And the chances are they'll bring crime with them again this time. But the politicians don't care and nor do the champagne socialists because that crime will take place in working-class areas, not theirs. This is the truth of the matter. What is also true is that this will keep happening for as long as we keep voting for the current occupants in parliament. You must change this and change it now. We cannot pass on a functioning country to future generations if there is nothing left. We deserve better. The elderly deserve better. The working-class deserves better. We can get it if we change our political representation away from the current crop and instead vote for ourselves. Vote for Britain. Thank you for watching. If you would like to stay updated with all of our latest videos, please like the video below and subscribe to our channel. As you probably know, Vote for Britain is shadow-bound on most social media. So it's really important to like and share our videos in order to get our message out. Thanks again for helping us to fight back. Thanks again for helping us to bring back.


What's up, bro? Hello! How are you? Good, good, brother. How are you? How are you, babe? Thank you so much for joining us, man. And I do want to. I'm terrible with pronunciation. Is it Adarsh, right? Yeah, Adarsh. Adarsh. OK, cool. Just wanted to make sure I was pronouncing it correctly. Well, I hope you're doing well. You're having a very busy season right now. Busier than usual, yeah, I have to say it. Yeah, having a good 2021. Yeah. Yeah, so far so good. Yeah. How did that, when you got the BAFTA nomination, how'd that feel, man? I felt like it was a mistake, bro, honestly. I saw my name in the log list, and I said, what? My name is next to fucking, sorry. My name is next to Gary Oldman and Anthony Hopkins and like, you know, Riz Ahmed and Chadwick Boseman. And I said, well, you know, it's got to be a mistake. You know, I felt like, well, this is an accident, and you know, let's be happy with this accident. And then the shortlist came out. And then I was just in shock. I could read it like a couple of times to make sure that I was reading it right. Yeah. Yeah? Very much deserved. That of all the things we enjoyed about White Tiger, the thing that stood out to us the most, and we said this in our review, was how impressed we were with you carrying that film and the level at which you performed as an actor. We were really impressed with you, as obviously the whole international community has been impressed with White Tiger. You much deserved. We were so excited to see your BAFTA nomination. And then obviously, what about adapted screenplay, brother? What about that for the Oscars? Who would have thought that my first international film that I was part of would be nominated for the Oscar? It's like a dream run, man.  It's so bizarre. And it seems like some sort of story that I'm reading, you know? Yeah, yeah, yeah. You can't really expect what to... You can't really anticipate what will come next.  It's crazy. It really is. And were you watching for the BAFTAs and the Oscars? Were you watching the live nominations announced? Not the BAFTA. I was watching the Oscar nomination. Actually, when the BAFTA was being announced, I was working out in the gym. So I just finished working out and I saw like a flurry of messages and I said, I think something's happening and then I opened it. I was like, whoa, okay. But the Oscars, yes, I was watching it live, yes. Gotcha. Yeah. Which I don't know how Priyanka could maintain her composure when they announced adapted screenplay for BAFTA. Right? Yeah, she was amazing. Yeah, yeah, yeah. So you've actually worked with quite a few massive stars in your career already from Shahrukh Khan to Shredevi, I believe, Nawaz and now Priyanka, Rajkumar and many others. What was it like working alongside Rajkumar and Priyanka and the White Tiger? You know, first of all, I've always been a massive fan of both their bodies of work. Yeah. But I feel that it's such a privilege to get to know them in person and to know the kind of work ethics they have and to see the kind of passion that they still have for their craft and to not become complacent after being active for so many years.  But both of them have this sort of fire going on in their belly and they're just so hungry to do good work.  And I had the time of my life shooting for it because, like, also Rameen, the kind of director he is, he loves to prepare. He does a lot of homework. He really puts in a lot of effort and, you know, which is why his film looks so natural. So behind making it natural, there's a lot of process that happens and the kind of freedom that he allowed us to, like, sort of improvise with our scenes and play with it, you know. In spite of knowing the script too and through and being an integral part of the book right when it was being written because he was, Arvindad is a bachelor at the university. So in spite of being so thorough with the story, he still gave us the kind of creative freedom to, you know, go and really explore our truths and our interpretations of the characters. And I think it was incredibly graceful of him to do that. And I just had such an insane time shooting for it, man, can't tell you. Yeah, that's very encouraging because when you're doing something that's taken from another source, like a book, the director's tendency might be to not let you do that and say, no, no, no, we have to stick to the text. We have to stick to the book. And I think it's beautiful that you were given that creative freedom.  Yes. Yes? I'm actually up at the space station right now. I'm getting ready for the next Tom Cruise films. Ah yes.  So how did you get involved with White Tiger? How did you get involved with that film? Well, you know, I was a test Joseph was the casting director of the film. One of the assistants got in touch with me and I was trying to get an audition test for quite some time and you know I got a call and my only intention at that point in time was just to give a good audition that I would get called for more auditions in the future because even entertaining that thought of oh I could be Balram just seemed so bizarre. So I was like man let's not get there let's just you know let's take it easy once every time let's give a good audition that she calls me for more stuff and then before I knew it I was five rounds through and Ramin went back to New York and told me that you know he wants me to play Balram. That's awesome. Wow. What was your process like because this character which once again you stole the show in this movie has such an arc for a character. Was it difficult playing these many different times in this young man's life? What was the process like for that? It was I certainly felt that the Bangalore version of it once I become the entrepreneur was more difficult for me because I spent about 90% of my time understanding the Balram from the village you know because that formed the crux of this scene. The story is actually about his journey from the village to the time he goes to Bangalore and not so much about what he's how is the story turns out to be one season Bangalore it's about before he goes to Bangalore right. So I was focused on more on that part of the story and you know I went to a village in the eastern part of India stayed there for a couple of weeks and I actually wanted to drive for a wealthy person here either in Delhi or in Mumbai but I was finding it tough to sort of you know find a job like that because who would keep me as their driver with a prior driving experience and you know so then yeah man I mean I came back I came to Delhi four months three and a half to four months before the shoot started and I started working at a small stall where I was cleaning plates and you know keeping the place tidy running small errands for for the owner of the small stall and I used to get paid 100 bucks a day which is equivalent of say like one and a half dollars a day it was like like earning a daily wage and thereafter I you know I used to be present at all the auditions that I mean like he gave me that option that he said hey man like you know I'm going to be casting a lot of actors for the film so most of those characters have scenes with you so would you want to be present at the audition I said hell yeah man I mean this is like incredible you know it's like it's like net practice like cricket right like you practice in the net before you play a game so I said yeah man it sounds like a great it sounds like a great thing to do and you know I went and I was present at all all their auditions and I tried different permutations and combinations with the scene and I actually I actually constructed the Bangalore Balram character entirely out of books I got myself a bunch of books on body language and on how to conduct yourself in a room and how to impress another person and you know like very very basic books on how to speak in English properly stuff like that you know stuff that Balram would have read once he went to Bangalore in order to sort of very carefully sort of you know like build this image that he had built for himself as the businessman so yeah I was actually a little scared about that part I wasn't quite sure about how that would land how that would land or whether it would work but I guess it worked yeah absolutely it did work you're the homework that you did and the freedom you were given on set and all the research that you did everything showed and we were deeply impressed with your performance this is kind of a question most actors don't like to hear but were you happy with the final outcome of the film did you like how it turned out particularly for yourself did you leave thinking yeah I feel good about what we did with that you know I have to be very honest with you this is one of the very very rare times that I was actually happy with what I what I'd done and I can't say that I'd never say that but like I actually was because I knew that I was in I was working with a great director I was working with somebody who was single-mindedly focused and dedicated towards what he does and is so passionate about passionate about films however the only thing that I was skeptical about was the voiceover bit because I had never had a voiceover and never been a narrator and we spent a lot of time recording those voiceovers almost like across the span of four to five months almost we had like 25 sessions where we recorded the whole bit so I wasn't too sure about the voiceover which sound because you know I was like it could very easily slip off into that zone where it's so droning that you'll fall off to sleep listening to my voice sure yeah I was like you know is this gonna work is this not and I wasn't sure about it till the last moment in fact even when the film came out I I would ask people I would ask them did that bother you at all and they said no it seemed fine you know it didn't seem to distract us from the story yeah you you really really carried that film being that I need to work on on that on that front to become like a better sort of because I really enjoy telling stories but I guess I've got to figure a way to make it more engaging and interesting for the people listening to it oh no you were you were you were absolutely perfect in your every single every single scene you were in which is incredibly difficult to say you stole the show when you're in a film with Raj Kumar Rao and Priyanka Chopra the fact that you you were able to carry those scenes with those heavyweight actors is deeply impressive and I know you've said that you we've wanted to act obviously in Hollywood but uh in Indian films as well but other languages and you want to learn other languages so language is not really a barrier for you for you for your acting and you could just do do do what you do what you do like in Malayalam right have you gotten any offers from other from other regions I think so far I actually so I'm I speak Telugu which is one of the south Indian languages there's there's Telugu there's Tamil there's Malayalam there's Canada there's Tulu there's a lot of very very interesting work happening in Tamil and Malayalam particularly and my father actually spent some time in Tamil Nadu back in the 80s and he picked up the language so so I have been taking some Tamil classes from him whenever I find the time honestly the last two two and a half three weeks it's just been such a mad ride that I've not been able to spend enough time doing my homework and you know learning the language but it's definitely something that I want to learn and master both the languages Tamil and Malayalam yeah yeah yeah do do you also see yourself now I don't know if you felt this way before white tiger and now it's just expanded but the film obviously has international attention and with Priyanka who is an international star and has both feet firmly planted in Indian cinema and American cinema is American cinema and television something that you very much want to see as part of your overall work that you do why not yeah I'd love to I'd absolutely love to in fact I'm working on my American accent for the last during the entire duration of the lockdown I was I just went through a bunch of youtube videos and you know whatever free stuff that I could lay my hands on because I wasn't making any money so I couldn't afford to like get a diction coach or language coach so I just like you know all the free videos that were out there on youtube I just like went through them all and you know I spent around five months doing that so I just did for two hours every day got myself a coach by September and did 15 sessions with him so I guess I'm about 65 to 70 percent there and the rest of the 30 percent journey I feel will happen once I am in America physically in person and interact with people there because you know I don't wanna I think it's very unrealistic and foolish to sort of like I feel it's very important for me to be there physically to understand the culture because through my understanding of the culture will I be able to portray the people that I'm going to be playing because you know right now all my references are from pop culture and from things that I've seen I mean of course emotions in the vessel and people are the same across but you know culture plays such a significant part on how you present yourself and how you talk and all of that right so yeah I'm hoping that I get some time to sort of I have that luxury to come to America and spend some time there and really invest in understanding the place and you know understanding the people there absolutely you seem like a very well read and you like to do your research in study and stuff have you taken a bunch of or have you read a bunch of acting methods do you have a favorite one that you subscribe to mostly or is it just a combination of all of them yeah not really you know like I went to drama school for a year and that is that is pretty much the place where I got my preliminary understanding of different kinds of techniques I did some animal study I did some life study I studied some basics of Stanislawiski but I can't say that I've studied anything in depth to really adapt that what I do is just a combination of different things that I feel works for me yeah yeah absolutely well it's good it's working it's definitely it's definitely working and what speaking of working are there other projects that are coming up that we should know about or you can talk about that we could let everybody know you're involved in yeah there's there's something exciting that I'm part of that starts from November which is an Indian project they haven't they haven't released an official statement yet so unfortunately I can't speak about it but you know it's they're probably going to release a statement on it in the next couple of weeks and you know like I'll be able to speak about it more often but I'm already training for it it involves a physical transformation so like you know I'm hitting the gym hard I'm following a diet and physical PT is like you know physical training is something that I've never I mean I believe in keeping myself fit and I always work out I go for runs and all of that but to work out with weights and to work out with a trainer is something that I haven't really done so it's a very new experience for me I'm doing some kickboxing I'm doing calisthenics so it's exciting really that's awesome and so you probably gotten asked this quite a few times but I haven't heard the answer what was it like as a young child working with Shahrukh Khan on on my name is Khan well never met him you never met him oh never never mind it makes sense considering that you were him so he just never there okay so what about on did you what was it like working on mom was that your first real big project when you worked on mom yeah that was my big first big commercial project I had worked on Rukh before that which was um which was which was a smaller project in terms of skill but equally enjoyable but mom was definitely a bigger project I worked with three ma'am I worked with Nawaz sir on it and um yeah man it was it was incredible like Ravi Udiyawar the director of the film is I think he's a visionary he studied arts from one of the most prestigious art schools in India called JJ school of arts so he has a very aesthetic way of looking at things and like you know um like the way where Sanderson like you know all his frames are very like beautiful to look at I think even Ravi Udiyawar's frames are like that you know they're very aesthetic looking he brings in a lot of art influences that he's had over the years and I had a great time working on this I mean I had a few scenes with three ma'am I had like what they seem which were which were phenomenal for me like you know just to be around her and she she she she's a reserved person she didn't really speak a lot but um my experience of working with her sharing screen space with her was incredible yeah now a lot of people get to say they did that yeah absolutely yeah and uh so now that you've got some like a claim to you and you can start kind of almost choosing what roles you wanted to you what attracts you most to your roles that that year um I would say there are like three or four things and all of them have to come together for me to be like really excited about it yeah um I think first and foremost is the story and the script um the director who is basically responsible for executing it yeah the dialogues are written you know it's very easy for dialogues to appear like dialogues unless it's intentional uh you know unless it's like a Shakespearean thing where you want it to sound theatrical um but otherwise I feel like you know uh films should be like it's a very intimate space you know it should feel like you're listening to a conversation and not something that's made up right yeah so I think that that's very important and of course the producer because he's responsible to present the film and like decides the scale in which it'll be presented and the kind of reach they'll have um yeah man so I'm just I'm I guess I don't know maybe it's foolish of me to sort of look for all these four things in projects but like I really believe that I work for myself I was you know I don't um I just want to be happy myself when I do something I want to be consumed by it and really affected and engaged by it so who are some of the actors that you look up to and have inspired you throughout your life that are like your favorite whether they're male female Indian-American doesn't matter sure um I think uh Merrill Streep um Daniel DeLewis Joe Pesci uh yeah in Phoenix um Tom Hanks um yes I do to Caprio Christian Bale um yeah we we we would get along we would get along just right yeah just named like all of our favorite yeah um I don't know this how did sir Anthony Hopkins oh yeah yeah did you see the father the goat I have actually seen the there's you know there's a play that was made in India it's actually a french play right so it's an adaptation of that french and there was a play made in India on it with where Naseeruddin Shah played the played the oh that would have been amazing to see it blew my mind I can't I can't tell you how amazing and how intense that performance was I haven't seen the film I'm probably going to watch it tomorrow um because I haven't found a decent print of it so I want to get like a good Blu-ray print of it before I can watch it absolutely yeah and so I I don't know this how did you actually get started in the industry uh completely by accident I never intended to be an actor I wanted to be I was trained in Hindustani classical singing and I wanted to be a playback singer oh and yeah and I was just singing for a stage show where somebody asked me if I was interested in acting and I said yeah why not because now I'd moved to Bombay two years before that with my family this was 2008 and it just felt exciting to be on TV I guess you know for a 13 year old brain that's how it functions and you think that oh it'll be exciting to do something but I get to come on TV that was honestly my biggest motivation at that point in time and I started auditioning from 2008 yeah great I got into it what's it what's your favorite thing well I guess there's two things what would be your favorite thing about being an actor and what's your least favorite thing about being an actor um and it could say more than one thing it doesn't have to be one of each sure I think my favorite thing about being an actor is that you get to you really live so many lives in one life by like really putting yourself in somebody else's body and mind and soul completely you know I feel acting is a very psychophysical process for me it's not just about reading a script and understanding what the writers trying to say but also allowing my body to experience the way the character is written and whatever the character is going through because you know the mind can dispute and knows that it's lying but the body can't dispute the body will take what you give it so I love doing that I think that's that's my favorite part about being an actor about actually I enjoy shooting a lot but I also really enjoy living the person before I start shooting because there's no parameters there are no boundaries I could do whatever I could improvise in life go wherever do whatever and get away with everything you know there's no there's no consequence absolutely and are you are you interested in um tv shows ott platforms stuff in the future yeah I think that's a way forward right everything is happening everything is gonna come on digital yeah absolutely I think you'd be great on on a couple like mezapar you you'd probably really go to mezapar in what so I'm sorry the series with yeah oh yes yeah we always must pronounce it sorry least favorite thing is probably I don't know probably like um I'm not sure like you know I don't feel very comfortable with attention um also because like the beauty of being anonymous and of doing these things that you want to do as an actor um it gets sacrificed at the cost of vanity and at the cost of becoming like popular and famous because then you can't really feel like a spy and do whatever you want to yeah right yeah yeah I guess yeah that that's something that I'm still struggling to deal with yeah sure sure absolutely well uh I do want to thank you so much for for chatting with us I'd like to end this off with a little bit of a rapid fire questions here man uh just stupid questions uh so like coffee or chai which do you prefer coffee black just favorite hollywood film favorite hollywood actor oh sorry oh man how to choose you you kind of went through it before um so yeah your favorite Indian film any region um favorite Indian film it's a tough one guys love it uh you'd be fantastic in any on your adkashi up film uh what are some of your pet peeves pet what pet peeves what annoys you things that things that annoy you things that annoy me um when people don't come on time absolutely favorite hobby besides um I think I really enjoy singing and I really enjoy working with animals hmm hold on I I love to run as well you love to run I love to run I love to go out and run on the road fair uh let's hold on somebody tell me the favorite breakfast favorite thing to eat for breakfast favorite thing to eat for breakfast um I love like a good smoothie bowl hmm acai bowl delicious yeah like a good smoothie bowl with lots of fruits and lots of seeds and some good greek yogurt yeah who's your favorite who's your favorite director I have so many but if I had to choose Stanley Kubrick Alfred Hitchcock David Fincher and Anurag Kashyap great choices wonderful uh and uh lastly who since you're you trying to be a classical singer who in your opinion is the best classical singer oh I don't know like there's so many good classical singers I really like to start Rashid Khan excellent I just wanted to put you on the spot there so thank you so much for answering that we we we actually we actually interviewed um uh Shreya Gosho uh and people were upset that we didn't have her sing on the channel uh so uh we I could have had you sing on the channel looks like a nightingale bro she's she's got such a sweet voice she is wonderful she is but thank you so much for for talking to us man you are you are you're a wonderful wonderful actor we are so excited for everything that you're going to do in in Hollywood in Indian cinema all over because one you care so much about the craft uh and and you're so so talented and so uh we're very much looking forward to uh to any projects that you have coming up and so thank you so much for talking to us Rick yeah the exact same thing like I said in our review the standout thing for us in the film was you and we became really excited about the prospect of watching you continue to work and we immediately we wanted to talk to you because as being actors ourselves we love talking process we love talking about the craft and we love getting to know actors and you are exactly what we had anticipated based from your work you are an extraordinarily articulate intelligent insightful self appreciating and examining for yourself and we really are not only excited about the work you're gonna do but we believe in you we we really believe that you are one of the most inspiring up-and-coming talents that not just India but that the world of film has right now and that great things are really in store for you and we're just going to be happy to watch you do it well man you'll make me cry now bro thank you 100% from the heart well thank you you have a great rest of your night man all right yeah thank you so thank you so much have a great night bye


So, I come from Bologna, I'm at the University of Bologna, and this icon here is virtual square, which is a team, which is developing solutions, tools, ideas in the field of virtualization. VOS, give your processes a new view. View, it's not an acronym, it must sound like view. So, which is the point? What is, what a process can, can view? A process running on an operative system is able by itself to execute machine operations, is able by itself to access its own memory, but everything else must be obtained through system codes. So, the environment, the view, the panorama that the process is seeing outside its world, it's given by the answer, by the reply that the system calls gives you back, gives it back. Okay, so, namespaces in the kernel are ways to provide processes with different views, different views on a file system, different views on networking, different views on process ideas, user ID, or whatever. What we are designing with VOS is something similar, but completely developed, completely running in user space with just user permissions without the need to be root. This, this can reduce dramatically the, the taxal phase because we don't use namespace feature in the kernel. So, you can imagine to run a kernel with namespaces disabled and at the same time, we, we provide the solutions that are available to standard users. Nowadays, it happens so often that solutions tools are provided for system administrators, but that it means that some, it's another way to enlarge the, the taxal phase as faulty programs, bugs can create damages to the system. So, what the idea starts is the idea come, comes from a need. Why? It is not possible for a, for a user to mount a file system. If I have a file system image, it's a file of mine. So, mounting a file system image and changing the contents of the files, including that file system image once mounted is just a sophisticated editing of a file of yours. Why is it forbidden in, in a standard system? Just because the idea of mount is an idea of a global operation of the system. This operation either is provided as a global operation as in the past or is provided just as to a subset of processes but, but by the kernel in namespaces. Instead, it must be possible to mount the file systems as users. In this presentation, I want to show you first what and why. And then at the end, how? The reverse way around. So, with other applications, I can need a virtual device. So, I want to create a RAM disk for my application. So, if it's a RAM disk for my application, why I need to pre-root? Why I need to, to, to need the kernel services? Or I want to use a different network stack? Or I want to see a file which is here there, like the bind mount. Or I want to mount the entire file system in, in car mode, in copy and write mode. I want to change the, you name the time, user ID, whatever, but I want to do everything in user space, user permission. So, instead of, I have slides with demo, but I prefer to, to provide with you with a demo result. Here I have, here I have a, a file system image. I would like to do this because this is the natural way to mount a file system. Actually, I get from the kernel, actually not from the kernel. This is an error of the tool. It's the mount tool that says you're not root. This is an error of the tool. But even if you try to, to call the system call, you get the error. Okay, you do that. You start a VOS machine. This window is running inside the machine. Again, if I try to mount this, I get the error. But if I add the module to provide the file system virtualization and mount this just saying the type of a system and tool, as I work around to the mount command error, I have to use view mount, which is a mount. You can use view mount to mount everything else, but it tries the system call. Well, what is now about live, okay. The problem is that, okay. Now I have mounted the file system, but just for this, okay. Actually, this is mounted, but this is another file system, as you can see. So I've mounted my file system over there. This is just an example. Okay, let's start another virtual machine. I have here some comments to be, okay. Let us, this time, if I can pick up the comment, I add two models. One is for virtual devices. One is for virtual files. And with this comment, I create a virtual device named dev ramdisk, which is a ramdisk 100 megabit, megabyte large. So as a user, I can create a file system on a ramdisk. Then I can mount the file system. And now on the dash mount, I have the new file system, which is into the ramdisk. I want to point out that I'm using the comments that I use as an ordinary system administrator outside the virtual machine. So one of the goals of the process is to use the natural comments to do what you need. Let us go further. This is a common problem I had. I always forget the comments to loop mount partition of file system units. For example, if you have a Raspberry Pi, the image has two partitions. If you want to mount one partition to change one file, it is a mess. And second, you need to be root. Now I'm showing you how to access the partition of a Raspberry Pi image as a user. So again, I add the two models. Now I use another virtual device module, which is Partix. And as you can see, that's an image I've just downloaded from a Raspberry Pi site. And now I have in slash dash slash sdx my disk. So I can, okay, I'm not root, so I need, you can see the partitions. Okay. And given there are sdx1, sdx2, I can mount sdx2. So I can mount the second partition. Here I have the root partition of the Raspberry Pi. I could change the file, do whatever I want. Or let's continue. Okay. Now let us play with another toy, networking. The model for networking is VONET. Now let me try, okay. Let us try this experiment. This is quite a new development. It's already unstable, but I want to, there's a development, a development I have created together with the camera. This is Pico TCP as a user mode stack in VOS. And given that the Pico TCP is connected to VD networking, I've used it at the networking interface Slip, which is the tool used by virtual machines to provide the user provider networks. Now we provide in VOS different stacks at the same time in order to change or to decide. And you can see I've mounted the stack in DevNet Pico. So in order to say, I want to use that network because now I have my, here I have my interfaces. But if I say, VOS stack, I open a bash and in this bash I have the Pico TCP interfaces. It's a choice, Pico TCP uses a hash it is. So it's quite different from standard networking because usually you have the name, the number of the interfaces zero one we have there. But now I can self configure the network using a standard the ACP client. Okay. Now I've got the address and again this is my machine, my computer in Bologna. I've used the stack in the virtual environment. Okay. Final demo. This is the current time. Now I can start the VOS machine. And now I start another sub module, mission. And this time, and I start another x clock. Now I mount, let me move this clock, which is, now I mount the module roomish time in mount. And it is like approach file system. So mount contains some fake files. And I can use this to change the view of the process regarding time. For example, if I put two in mount frequency, as you can say, we have relativistic machines. So the time in the virtual machine runs twice as faster as the time in the normal life. Okay. So as you can see, this, the idea of UIS is providing means to provide the processes with the view we need to solve problems. So we have started from the solution. We'll start from what is useful. Now I can show you. Okay. All the demos I've done now are in the slides so you can test by yourself if you like all the demos after the talk. This is the structure of one view, which is an implementation of UIS. We can provide further implementation in the future. There are processes in the user space. And there is a real system call interposition to decide which system calls must be forwarded to the kernel in case you are accessing part of the system, which are real. Or the system calls are completely implemented in the hypervisor code. In order to achieve the better results with parallelism, we use a technique that we have named the guardian angels. So each process running in the user space has in the hypervisor a thread which is providing the virtualization for that thread or process. So each process in the user space has a guardian angel thread in the hypervisor. So if a process runs an open, the guardian angel tries to see if the path is in a real or in a virtual part. If it is the real part, it simply saves the process for what the call to the kernel. Otherwise, the guardian angel and the model choice is for the choice of virtual or real, and in case it's virtual, it returns the module which is responsible for the virtualization. So the system call, there are wrappers that get from the user memory all the parameter what is needed to perform the virtualization. And the system call is forwarded to the module we have seen in the demo's fused dev net. And the implementation of file system, networking, or devices, or whatsoever really perform the actual action to have the result. I have two points to note now. One is I have, in example, I have created a virtual device and inside the virtual device a virtual file system. So this was a nested virtualization. So try to think that we open a file in the virtual file system that call is forwarded to be fused for the virtualization of the file system. How can we achieve the virtualization of the device on this? The hypervisor uses a self-virtualization method. Pure libc is an overlay of on libc that is able to grab, to catch all the system calls generated by the process itself. So even the read or write from a view fuse is returned to the choice function and if it sees that there is a further virtualization in place it calls the, in this case, the device virtualizer and the, for example, from the RAM disk and it provides the correct answer.  The modules receive just the system calls. So if there is a read here, read file descriptor buffer length, over there the module received a read, a read file descriptor buffer length. So a module is simply created by registering the service to the hash table. So one module can register I can, I am responsible for this subtree of the file system or I am responsible for that file or I am responsible for that address family. I am responsible for that or the other system call. And then it has to provide the implementation of the system call. If somebody want to access that kind of file, so there is a read, what must be the answer? That's all. Okay, I have no time to show the code but everything is available. We have a wiki site, we are redesigning the wiki site. The most important here is the set of repositories and there is actually an infrastructure for a tutorial. We provide a, we provide a disk image and scripts to make it easy for whoever want to try the tools to have the whole infrastructure ready to perform the experiments I've done five minutes ago. So feel free and please download the image, try the tools and if you like, if you want to participate the project is open to all contributions. Thank you. How do you compare a view with a Geovisor or a user mode Linux? How do you compare a view with a Geovisor? User mode Linux, I compare user mode Linux to VOS or UMU. User mode Linux is a complete virtual machine so it puts an entire kernel. We don't put anything, we just put the system in a condition to grab the system call and divert the execution of the system call to modules if required. So two points. Oops. Okay. We use BFS to accelerate the grabbing the system call catching. Now we can do just avoiding the second caller. Each time a system call is grabbed by Petres. You receive two calls, one before and one after. So using BPF now we can avoid the second call whether the system call is completely real or completely or completely virtual. We have a system calls that are at the same time real and virtual, for example, open. We have a virtual open but at the same time we force the process to make a real open because we have to allocate the file descriptor. Okay. We would like to offload many parts of the decision process in the kernel but we would need the eBPF with a comp which is a long discussion in the Linux kernel menu list. So if you are interested and you like the project, I help us to convince the Linux kernel menu list to add the eBPF for the second comp system call. Thank you.


What are the biggest challenges if you want to create a location-based story or a game? Actually, there are a lot of problems doing location-based games.  That means you can tell it only at one place, which means that you can make the story better because you incorporate the environment in a much deeper level than if you make a location-based game that can be played almost everywhere, which is also possible. So you have this whole continuum of things, but it might mean that your story can only be played in this place, in this park, in Berlin and nowhere else. So you won't have this huge number of players, of course. So what's so special about this place? Okay, we are here at the Miringplatz, which is an almost perfect circle. So it has a circular structure. And in the game, there is some quite secret structure below the ground. Okay, but only in the game. So it's a fictional place. There's something fictional below the ground. There's something real below the ground, which is the underground station where it just came from. And but in the game, you will find that you are interacting with something which is down there and which forces you to move in a different way. So in the first part of the game, where we saw, we were just walking and talking to some of the characters. And in this part of the game, it will get a bit more physical. But the principle is to put fictional content into a non-fictional environment. There are other things to consider. You have the weather condition. If it's raining, people don't go outside and play so much. If you have, if the game is too long, people get tired, as I already mentioned. The environment is changing. So if you incorporate the environment in your game, it might happen that your game breaks because something changes. I give you an example for I made a location this game called Tidy City. And I put one item into the game, which is fountain, which I thought was a very stable thing in the city. So fountains normally don't change, right? And half a year later, when I came to the place again, they had totally moved the fountain because there was a big construction site. So I had to change the game. So these kind of things like environmental relationship to your game is a big challenge in doing these kinds of games. Nothing is really permanent in your level, which is kind of interesting, I think, because you never have 100% control over your levels, over your level design. Your level is the city, your level is the environment. And the environment is constantly changing. And you have to deal with that in the game design. I wanted to make the game in an interesting part of the city. I didn't want to make the game in the most touristy part of the city. And the composite tour was for me a place that has a lot of energy and a lot of interesting past and present going on. And then I was looking at some structures that would be interesting for the game and for the for the protagonist. Like for example, in the Oranienstraße, you have a lot of restaurants and you have a lot of shops. So that would be because Lisa is shopping and Paul is eating at restaurants all the time. So this gives a connection between the environment and the story. It became the story that it is now after looking at the places. The other way around is totally possible, too. If you have an existing story, you could think about which place do I want this story to locate. And then you look at the places and then you try to find these correspondence of your story with the locations. Backyards are a problem. First, because of the GPS reception, it can be very bad because when it's surrounded by high buildings, of course. And the second thing is that backyards can be closed. And on the second test, we found out it was locked and we couldn't get to the location. In this case, you can do two things. One thing is you make the point optional. So you don't have to get this information or you don't put the most important information into this point. So it's like an extra bonus track or something like that. And the other thing which we did is we moved the point right to the gate. So the location is now at the gate. So if you're outside and the gate is closed, you can still get the part of the story. But if it's open, you can walk inside. And it's like the backyard atmosphere. It's more like what is told in the story. It's more interesting in the backyard. So it's kind of optional. Another major issue is the device that is necessary in most cases. For example, a GPS-ready tablet or a smartphone. Secret City, for example, is available on both Android and iOS through app stores. Other location-based stories or games might be restricted to only one system or to special devices. This automatically decreases the amount of possible experiences to those who have access to the devices. So keep that in mind. The classic adventure genre is used as a structure and rule-giving foundation for this location-based game. This is an important point when designing a location-based or absolutely any new media experience. Keep it simple. Keep the world easily accessible. If your way of telling the story is new and exciting, for example because you are using new technologies like Google Class, keep the story simple at first. You can compare the experience to you as a total stranger in a foreign town or universe. If you know the language and some of the rules, you might be able to adjust to others that you don't know. If you don't get the rules, if you don't get the language, then it will be really really difficult to feel at home in this new experience that might also be a game, for example. This is not to say copy and paste whenever you create. Please don't. Be creative with any rules, even break and bend them if you dare. But keep in mind that anybody you create a story or an experience for will need to understand your set of rules to follow this story. Make sure your audience understands you know what you are doing, otherwise you will not have any audience anymore. If you, however, want to tell a very complex story that uses completely new ideas of time and space, as for example Christopher Nolan did with his 2010 movie Inception, look at how he worked around this. Not only did he use film, a classic mainstream lean back medium, in the film he also explains his fictional world set of rules very clearly. He does so by even creating a whole character whose job basically is to make you understand, as was shown very well in a video linked below in our list. On the other hand, Nolan mixes these new creative ideas with story arcs and archetypes. We know, we already know, offering, for example, an epic love story between a man and a woman, a rather classic student-teacher relationship and several thrilling action movie elements like a car chase, for example. In other words, if you want to tell a really crazy story with really crazy ideas, that's totally fine. But then think about making the way to access the story, the technology, for example, to be used, as simple as possible maybe. On the other hand, if you want to use crazy technology, new technology, that's also fine. But then think about a story that is not too complicated to make it possible for any audience to get into this story, to understand the set of rules you are creating. Okay, in some sense, Chris, I think the future of storytelling is now. So we already have it. We just have to take the opportunities that are given to us by all this kind of stuff, all these interesting possibilities that we have to build new kinds of stories and do it. So we should get to work. And on the other hand, what I feel is hindering us is that we still need better tools to do it. I mean, many people are still using normal text writing software to write interactive fiction, which is wrong. I mean, we need better tools. And we should just start with our stories and produce them and let people interact with them and get further. Creative task of the week. You heard, Michael. Just start working on your own stories. For now, Word or anything other like writing software will have to do. Your creative task for this week is to watch your surroundings closely and pick three to five locations and possibly their GPS data that you know very well in a two kilometer or two mile radius and use them to tell a simple yet round story that other people will only get to listen or read if they follow your hints to get to those locations. Your task includes please create a story, which at least has one fictional character, a beginning and an end somewhere and use these locations to tell the story. So have fun and send in your concepts. I'm very much looking forward to your ideas. And now we're at the end of our journey here at Halle's Store. And I hope you liked our little presentation of Secret City, which is a location based game with augmented reality. I hope you enjoyed the tour and see you later.