 Thank you for joining us today. You are here for our Wednesday afternoon lightning talk session So each of our four presenters are going to get 15 minutes to speak on their topic So I will start by turning it over to Kieran from Envika and feel free speakers to introduce yourself as you come up I just watched my colleague Constantine do a presentation in the auditorium to help my nerves Just having to do it to you guys So what I want to talk about is the big news in Drupal 8 which is the adoption of symphony components And kind of why is this a good idea? Why symphony there's plenty of frameworks out there What's attractive about symphony that makes it a good idea to pull these components into truth? Is it that the symphony guys are like these geniuses of massive brains who churn out perfect code? That's not true. I know quite a few of them. They're normal like the rest of us There's one thing that does kind of Make symphony stand out from some other frameworks and that is the architecture So this is from a blog Fabian the main architect and maintainer of symphony wrote three years ago, I guess And when he was trying to describe what symphony to was He didn't say symphonies or MVC framework Symphony is a reusable set of components That are decoupled but still cohesive that solve common web development problems It goes on to say it's also a web framework. That's one way of plugging these components together to build websites But the sort of initial starting point when we're developing a symphony component Is to say how can we make sure this is modeling the problem? It's trying to solve well in a way. It's going to be reusable in other non symphony projects And have clean API's and clean separation concerns So one of my colleagues Yakub did some research on Adoption of symphony to so he this is in February this year. He wrote a blog post which you can look at in your own time, but He crawled across packages and looked at what? Dependencies all of the projects on packages type and 20% of them were relying on symphony in one way or another That's a huge number. It might be slightly skewed because Maybe symphony projects are more likely to use composer or use packages But it's still a big chunk of projects in the world have some kind of symphony in them When you look at how they're relying on symphony There's about 5,000 packages About 2,000 depend on the framework So that's a explicitly are a symphony web framework application That's about 40% of that 20% about 20% depend on Symphony symphony, which just means everything Everything in the symphony framework the guy who wrote that package didn't think hard about which components is going to use 47 and depend on very specific components of symphony. So there's a huge number of projects out there That are symphony reliant that aren't symphony web apps They're taking the components from simply that I think they'll use Okay, and that is kind of the approach Drupal's taking Drupal isn't being rewritten in symphony the web framework Drupal are looking very carefully at what components symphony offers saying which of these components will be useful to us To save us time to allow interoperability with other projects. Okay, because what shared components give you Adopting components from another library It gives you interoperability It gives you the opportunity to write code that can be used across different frameworks It gives you hiring benefits Someone who's been working on symphony stuff when they come and work on a Drupal 8 application a lot of the concepts and API's they're using will be Familiar to them. So what I'd like to do is I Illustrate this by looking at there's going to be one component, but then I realized there's actually two components So two components from symphony that are being brought into Drupal They're in the Drupal 8 beta when I looked They dropped in about alpha for For those of you are tracking the alpha bills as a kind of moving target And I want to explain what these components do and how the fact they're being adopted by Drupal offers opportunities to interoperate with symphony So we'll look first at what does a web application actually do? What do web applications look like and it's a really simple model, right? An HTTP request comes in. That's what makes a web application And eventually an HTTP response gets returned back Unless you seg fault in the middle and nothing happens or your server dies and this abstraction Is true for all web apps? So having different frameworks Modeling this side the request and This side the response differently from each other Is a kind of duplicated effort? The HTTP requests my symphony app deals with us the same things that your Drupal app is dealing with Unless they change HTTP So inside the HTTP foundation component there are objects that deal with this We have a request object and a response object And you don't have to think they're the best way of Representing a request and a response. There are things I don't like about them But the fact that work has been done in the symphony project and it's completely decoupled from the rest of the framework means that any any application that needs to model an HTTP request an Inbound HTTP request. It's a really good idea to use this object It's an object you may have used before on a previous project It's an object that does a good job of modeling an HTTP request and there isn't over time going to be changes to that domain Even when we look at HTTP 2 the kind of concepts we're modeling in the code things like cookies headers HTTP verbs they're all going to be stable You don't need to reinvent your own request object, right? Same of the response The bit in the middle is the interesting bit your application So symphony provides Kind of two elements to deal with this the most important one from the Drupal perspective is an interface So symphony framework, the symphony web framework has an object that represents what an application looks like but it also recognizes that Not everyone wants to buy into the way symphony web applications are built Other people want to build their applications a different way It also exposes an interface It just describes how applications work. How do applications take a request and output a response The interface looks like this Hands up if you're a developer Okay, great. I'm going to show code. I've got a good word The interface looks like this and all it really defines is you have to be able to handle a request and that's going to return a response That's how a web application works. It's very closely aligned with the domain we're dealing with The other stuff is more complex If you look at a symphony web application This is what the front controller looks like. This is the file that everything rewrites to the index dot php, right? It's that php in symphony all the requests go through here We do some stuff at the top to get a symphony application ready called a kernel We'll make a request so it takes all that Don't underscore get don't underscore post cookie stuff and wraps it in a nice object The job of an application is to handle a request and return a response Then you send the response out to the user if you look at Drupal 8 This is pre beta. This is at the last alpha when I wrote the slide. It's doing the same thing. You can see the similarity, right? You make the request exactly the same way you wrap all that php stuff into an object You then get the Drupal kernel a different way So the details of how you get a Drupal application ready are different to how you get a symphony application ready But fundamentally all it's going to do is the same thing It's going to handle a request and return a response and then we send that response out to the user So so far so good This this model is sort of common model for web applications have been adopted very widely Symphony web applications do it Sylex applications have the same interface Laravel apps Drupal 8 now Yolo, which is kind of a joke framework PHP PHP be even has started adopting this model for request response That's like a 15 or 20 year old application. That's they're moving towards this WordPress are thinking about it. I think it's the latest But what's the benefit of having this shared model? There's the hiring stuff I mentioned. There's familiarity There's the fact that you know, there's less rework. There's less reinventing of these concepts I think the reason it's a great idea to take that simply component is because it doesn't come with a load of other concepts You can just rely on the H2 foundation component to provide a model for requests responses cookie sessions that kind of web stuff That's never really going to change. It was going to change quite slowly as different H2P versions come out But introducing an interface has one massive benefit in that As well as having these hiring decisions and design benefits, you also can Develop code that is independent of the framework So the domain we're talking about is requests coming in and responses coming out There's a whole set of problems that can be modeled using that metaphor without caring what happens inside the application Not everything but by Having this nice clean interface that everyone's sharing. There's a lot of stuff you can do So here's an example from symphony. There's a lot of logic in Drupal about full-page caching How do you cash your responses? Symphony doesn't have any of that built into symphony It's actually very rare to do it in software The preferred approach is to have an H2P cache in front of your app and just don't worry about doing full-page caching If you want to do it in software, this is the approach you use. Use an object called app cache You get your symphony application ready. This is the same as the previous slide and then you Pretend that this new thing is the kernel So you wrap the actual application in a caching layer And then the rest the request response stuff is all the same So this and I know what design pattern this is This is the decorator design pattern, right? So you've got your internal logic of what your application does And then around it you're wrapping a layer that does the caching So some requests will just hit the cache and bounce back because it the cached version is served If something isn't in the cache the inner kernel will get invoked and its response will be cached What it's done is it's added full-page caching to a symphony application without making symphony more complicated This app cache object can be reused with any of those other frameworks Okay, so this is built into symphony and it got a few clever guys thinking Maybe we should use this approach more We've we've been able to implement a full-page cache that works with any framework that uses this interface So we'll work straight out of the box with Drupal 8. What else can we do? They called it stack It's hard to define what stack is. It's just a kind of mindset really and a set of conventions There's no there's very little code and the stack project curates a lot of these Objects and they decided to call them middlewares So something that's going to use the decorator pattern to wrap an application and do something where either fiddles with the incoming request Or fiddles with the upcoming response So here's an example middleware that you can write yourself We implement the kernel interface. So we're going to pretend to be an application And when we're asked to handle a request what we're going to do is we're going to ask the real application to handle the request And then replace its response and add a new header Drupal con rocks So we're gonna replace the contents and then return that modified contents so I can wrap that Around any symphony app or any Drupal 8 app and it will add this banner. So imagine you've got five Five ongoing projects on different frameworks. It's one piece of code. You can apply it to all of those projects to add the banner Okay, but it looks as this The kernel is Wrapped in a cache and the cache is wrapped in on your object So exhibit caching properties and it will be adding this stuff to the app the stat guys have done a great job of Linking out and curating a list of other useful middlewares. So cookie guard is really interesting your application thinks It's just setting plain text cookies Then wrapped around it is a layer that's intercepting all the outgoing cookies and encrypting them signing them And all the incoming requests. It's decrypting and validating signatures So your app is thinks it's just setting cookies in the massively insecure manner This is from the Laravel community, but cookie guard is encrypting all of that going Do IP does do IP look up so as far as your application is concerned users are helpfully including what country they're in in every request You can do a bunch of other stuff last thing I'll mention is When you use it in Drupal is a problem I said when you To apply one of these middlewares you wrap the kernel Which would involve editing index dot PHP, which isn't something Drupal developers are happy doing Because it's part of the frame learned by the framework. It's gonna screw over when you try and do upgrades So this has been merged into It's made it into the beta You use the service container, which is a different symphony component you register these middlewares So you just say I've got this promoter and my app should be wrapped in this You can have a whole list of them with different priorities each one adding something to the application Unless they are show. This is an example of two separate applications. I have a symphony application And I have a Drupal application and I've merged them into one code base I can use this another third-party cut middleware called URL map that says all the requests are handled by Drupal Unless they start with blog in which case hand them off to the symphony application It's something you're doing in software. You don't have to configure at the web application So that's it for me. I'm Karen. I've gone a minute over I contribute to PHP spec. I'm a trainer in Vika group. We do a lot of training in symphony And come and see us on stand 309 if you've got any questions. Thank you Just a small warning. This is no technical session because there were three really heavy stuff This is about what we are building for the Flemish government. It's a CMS system based on Drupal We want it to be very user-friendly. I'm just going to show you where we came from first This is how the average website and the average Flemish government website looks like This is a typical example of being made in I publish There are a lot of CMS systems used there are 35 around 35 CMS systems that are being used in Flanders There are like 20 hosting providers there are about Between 500 and 800 websites So there were two guys at Flemish government and they had this idea of standardizing and industrialized industrializing the concept of one global platform to realize all the government websites So we started we two companies yes, and it's a it's a communication agency One agency is an web integrator Also Drupal shop, and we hooked up. We created the pedal. It's a company. It's the name of a distribution and We started working on can you and can use the name of the Flemish government the guy the client is in the room Very polite And we started thinking about what we are going to make so we started and we looked at the Drupal Multi-site solution, but that wasn't scalable enough then we looked at the Drupal distribution That seems a valid option, and then we thought oh perhaps we can fake it with fake triple that factor it We opted for the most scalable solution That's a Drupal distribution and what we have made is basically an infrastructure where we can create fee hosts Just put the distribution on it and we take it from there to realize websites What is it now can you is basically the distribution with a lot of teaming options and a sort of app store We call it the paddle store So it contains all these kind of little functionalities that can be wrapped in in a padlet It's added to the story. So it makes it scalable also future proof We can invite pretty much every developer to make him an Padlet wrap some functionality added to the store and then Open it up to all these websites that the government want to have What's in the system even more we have some four roles right now Just plain simple a webmaster who has the functionality of the teaming and the app store We have an editor in chief we who is responsible for the publication of content You have editors who cannot publish anything but can prepare the content and then we have Read only role and that's being introduced because there was some kind of Necessity of people validating content that cannot touch the actual content What else is in there? We can create pages simple plain simple. I will show that later. We have centralized asset management We have Links to a website taxonomy navigation structures. We have publication options We are responsive. It's still a work in progress, but we're almost there and we built everything with accessibility in mind I'm not saying it's perfect, but at least we're trying to help also the blind to use the system One of the latest releases we had was the education website It's kind of a big project. They're almost work two years on it A lot of people were involved and they launched it last week Two weeks ago. We had in a key spot which is energy saver website made with the same system and One of the first customers was over the the Flemish garbage company What's special about them is that they work with? 90 editors On a daily basis in the CMS. So if they can do it It's pretty performant What we also saw is that a lot of people use a system without Without what we had foreseen for instance these guys of audit Flambe the they work very visually This is the typical landing page in Kenya. I will later show and demo how it works But what you can do is really think visually you can add any You can you can add blocks with custom content with images. You can add Navigation structures you can have listings based on taxonomy terms etc. Etc. So it gives a pretty flexible configurable Installation for non-technical people to use and I just took a life upside Okay You log in as a normal user and then you come into the back end where you can see the pages that are being created It has it's a Flemish. Sorry for that and Everything that's related to the workflow. So a page get created needs to be approved by an editor in chief before We can be published and then it can be published We have the team story the team story that you can create different kind of Look and feels for your website and you can preview preview them on your live website. So this is the active team And then you can scroll to a couple of themes that you try to make just to see if it works if it doesn't work Also something that we are pretty proud of is that from any page within your website You can directly go to an admin view where you can edit it So if you see a full an error on your website, you go to the page you edit it to publish it and it's solved pages Are really simple to make We start in the base distribution with two types of pages basic pages Blending pages and the other pages are being added to the paddle stock, which I will tell you about a basic page You cannot content in it. You have a title the body taxonomy terms that you can select You have as a optimization old text you can place it in navigation This one is pretty Different from what you're used to and say hello. I want it to be placed in the main navigation I create a menu link and you can position it directly where you want it So You can save that and it's created You can also schedule like I said, and we added the page responsible because in For the government. It's quite important to know who's responsible for what page apparently What else I said Oh The landing pages is basically it's grids where you can put blocks in it. These are paints Really simple. I'm going to create this page Same same principles and instead of adding content I can fill up regions Regions And there you have all the types of content that you can add in blocks page content contact persons navigation structures images lists contact forms The pedal store the pedal store is basically where we gather all the external like the added value Functionality there will be a business model in which we will add a lot of fee free features But it's possible that we will also try to ask for money when using third-party applications or Custom applications built for specific clients What what you do is you just install a padlet Sometimes you can configure it on the app itself and sometimes it adds a bit of functionality in the base distribution So that you can use it for instance like the pages That the contact person page, etc Structure also very easy to manage taxonomy easy to manage Just by clicking drag and dropping saving and it works So how do we do this we have a great team and great processes they are built together we do everything really really Really great actually and these guys over there and they're from the start We do retrospectives almost every month where they can say what's on their letter. I don't know how it's called in English But they can say how they can they can add improvements to the processes They they sometimes have remarks about the building but also in processes very technical discussions, etc What's also important is that we took the wrong the wrong right partners of Mord and they evolved a bit We're working with nucleus for hosting for instance like is the latest tool that we added for internal communication We can really recommend it also the devs are really Yeah, find it very useful to ask small short questions and then last but not least we have The most amazing clients. They know that they're stepping into a platform that's unfinished that keeps on evolving that sometimes Contained bugs and they help us making this work by reporting them We also have co-creation meetings every two weeks where they give us input on how to make stuff We prepare it of course, and then we show it. We demoed it with Clickable wireframes. They say what they miss and then we go back to the drawing boards Adapted and start developing. We have a very lean development approach very test-driven also a lot of time is being put in Avoiding regressions we made a mistake last year and I regretted it a lot So now everything is really needs to be covered before we release it Releases are every two weeks. So we keep on developing continuous releasing Every two weeks. We put in production. What's ready. What's been covered by testing if it's not ready Then it will not be released and the only thing I can still add this We're really aiming to create the best CMS in the world for non-technical governmental people On a no fail hosting platform Any questions? No, that's good If you if you have any questions, okay. Yeah, go ahead It's it's I'm going to give the word to a technical guy for that Peter perhaps Oh All right, I'm just one last thing we also We know that Yeah, well here's for the end users to use and this is the first thing That we're going to do. It's really to create some more airy atmosphere in the interface So what we do with can you is make it really simple for end users to use all the functionality that Drupal offers is mostly hidden Because I it just confuses people And that's what we try to avoid. So thank you But this is something which we are just using under these and we are not basically interested in technical details So I thought well, what is the key message of my presentation today and I was thinking about well Who knows the name of the dolphin of my SQL? So this dolphin is called Sakila So whether you are interested in my presentation or not You probably want to stick with the name of the dolphin of Sakila and we've got some plush dolphins on our table So this should be one of the key takeaways and I would like to speak about my SQL as of today And what we'll probably start or what will be the next versions of my skull and the near next features My name is Carson. How am I located? Nearby Frankfurt in Germany. I'm part of the so-called Oracle LVM GPU Which means Linux virtualization my SQL and my focus obviously is my SQL Now another crazy slide is the safe harbor statement to be honest. Everybody's using it with an Oracle I'm not exactly sure what the background for this is but I think it basically means I can tell you everything And you cannot sue me so everything what I'm going to tell you can be true But probably not so I think that's from legal perspective. That's everything now Let's come to some of the facts. So my SQL is owned by Oracle now Oracle to go over Sun some to go over my SQL and When Oracle to go over Sun There was a kind of a feeling that Oracle will probably close down the mice girls product This is probably the second most asked question since yesterday Well, probably it is true probably not I don't know. I'm not Larry Ellison But basically some of the facts which I'm going to present you probably makes you believe that Oracle does not have bad things in mind When it comes up to my SQL so for example when you look at the Engineering stuff and the QA stuff and when you do a direct comparison as of today To works 2000 end of 2009 when Oracle took over Sun. Well, most teams are doubled or tripled Some of them are even more stuffed than they are at 2009. So there is some stuff going on and We're still hiring so in case that you are interested in working with my SQL. We've got about 50 positions open So go to Oracle and well, but just double-check the pages in case that you're interested in So how does development work within Oracle? So Let me start with this hasn't really changed since a Sun Acquisition of my SQL or Oracle acquisition of Sun microsystem So basically when you're using a Maya square product as of today It basically falls into one of these five regions and it's probably you're using the code You're building your own database, which is still possible. This is true for even the next version of Maya square, which will be released 5.7, which is not the GAS of today It is still true for the 5.6, which is the GA version and it's even true for the Reliefs from the past. So this is a kind of the open source version. And by the way We had a big event this year called the Oracle Open World Which still takes place in the US this week and as part of this Oracle Open World We are announcing a lot of new stuff and not of new features and changes to the product and so on and so forth and Since probably mid of last week, you can find a MySQL code on a Github So they changed the model in a way that they are internally using the Git infrastructure and all the open source code of MySQL is available on Github now. Well, this is true since last week and In the development phase when we are interested in certain feedback for features We call it a lapse release. A lapse release is probably nothing what you want to use in a production environment And this is probably the same for the so-called development mitzvm release. The development mitzvm release is a kind of the main code, the main MySQL version and when you want to have a feeling about Benchmark and features and so on of the next version You probably want to look at the development mitzvm release, which is the third one But still this is nothing which we are going to support as MySQL because it's probably too early In case that you're interested in using MySQL in a productive environment in combination with triple or other Applications, you're probably looking after the community version or the commercial version of MySQL And when you look at the database technology the database itself, they are 100% compatible So it's probably only the licensing Readme stuff, which is different but from a database perspective the feature perspective It's 100% equal and this is true since Oracle. So again, whether Oracle has something bad in mind for MySQL Or no, I don't know exactly, but It doesn't make sense in case that they have to so and again, it's the fifth year now and Since the Oracle acquisition, we released all these products So you probably can't read them, but I assume you get the presentations anyhow later on So I do not want to go into detail with all the products I think the the main ones are probably at the right side and the one where I want to get your Reflection on is a very small binary. I think it's about 20 or 30k It's a thing called the YAM Linux repository So I just asked the second most second-asked question since yesterday is well Will Oracle close down MySQL and as that I don't think so and probably the most asked question is about scalability With MySQL and issues with Kruppel or other stuff Now one of my questions which I'm also always asking is well Which version of MySQL are you using and most of them I hear 5.0 or 5.1 I rarely hear 5.5 or 5.6 which are the actual versions of MySQL and this is an issue Because scalability was highly improved especially in the later releases in the 5.5 or 5.6 release So my strong recommendation is to use a late version now when you are using Linux Retard Ubuntu, Debian or whatever you probably want to stick with the version which are part of the Linux institutions This is not the recommendation which I would like to give you I would like to give you the recommendation Well use the repository and use the latest version which is available because we are still evolving the product We're still working on scalability and especially when you're coming from version 5.0 and you're using 5.6 I would be really interested to see how much faster MySQL is because I expect it to be at least three or four times faster So one of the first things when you run into scalability issues is well use a late version of MySQL And a very very easy trick to use or to get to the latest version of MySQL is to use the Linux repository which again is nothing really new it's available since a couple of Months now we are today with 2014 We still have a lot of stuff which we are developed as that most of the products are released in the last 10 or 15 days That is because of the Oracle Openwork, which is the classical period of MySQL to Announce new products and that's where we are today the latest version as of today is the release 5.6 21 or the release 5.5.14 is that you're interested in it now Scalability I already mentioned that scalability is one of the key questions Which I'm getting and the question is does MySQL scale and to make it short normally it does Now these are the figures for the release 5.7 Five zero or five one they are even not mentioned anymore They are probably in the area of a kind of five six thousand so therefore by just using a late version You probably get a much better scalability and with every new product we are evolving the scalability of MySQL So you should not have a big issue the same is true for the next question Which is based on the no SQL interface since release my score by version 5.6 We do have a no SQL interface as well This is based on the memcache product and usually it gets a kind of ten times the performance as when you're using SQL But one of the key takeaways here is that there is a no SQL interface available for 5.6 and for 5.7 as well You probably want to use it in case that you need this kind of scalability So these are the kind of the releases Where you see the presentations as that the Oracle Openwork is still ongoing this week so some of the presentations are done and you can follow them in the internet and The product or the release where I want to put my focus on is the so-called MySQL fabric because it's very rarely used and I would like to get you an idea what the fabric is about so basically Replication so my first question is who's using MySQL in this room for triple or for other applications Okay, that it's close to everybody now who's using replication. Okay, that's probably half of them So in case that you need scalability or you need a HA high availability or other functionality You probably use a technology called replication You've got a master and you've got a slave all the reads and writes can be put to the master server And it's replicated from the master to the slave environment So basically means that you've got a couple of dozen service But you still have one master which is responsible for keeping all the other databases up to date and therefore all The right requests are basically just going to the master So this can be an issue especially when you are a company like Facebook or Google or whoever It can be even an issue in case that you have a big database So what we introduced in spring this year? It's a thing called the MySQL fabric the MySQL fabric is a standalone component It is open source. It is available as a GA release We just have to second or the server lease Announced this month and there is a difference when you compare the replication with the fabric so From an application point of view there is a connector the connector connects to the database So long you probably have seen this picture now The difference is that before the connector is putting something into the database or is reading something from the database there is a new technology called the fabric and Fabric is basically a kind of the stakeholder So the fabric tells the connector where to connect to and where to send information to and this is an interesting model because you can easily Build huge databases now. So let's have a look at the second one. So I do have two farms now I do have two applications the applications are writing the information to the connector the connector wants to write the information Somewhere now before the connector is writing something to the application It is asking the fabric where to send the information to and one of the valid answers is that please send information to the left Monster plus to the right master. So I do have two copies of my databases In addition it can do load balancing in addition. You can do shouting based on charting keys with the application This is as that pretty new since this year. It's called MySQL fabric and there is a high dependency on the connector. So As of today we support a Python Java PHP dot net We do not support all of the connectors right now. That is ongoing. So for example the C connector It's so-called lip my squirrel as lip my squirrel client. It's not supported or it's in in alpha mode as of today But this is a song going forward in case that you are looking at h.a. Or big databases You can do it with my SQL and you should have in mind that there is a php connected And therefore it is available for triple as well. So when you want to have h.a. Very easy h.a. This whole fabric set is set up in about 10 minutes or something Well, just use the php driver the newest one the PDO version and just connect a couple of my square lenses And have two or three dance the data set as a replica of the mind my school environment As that this whole set is set up in 10 minutes or something It's rather simple. You just have to have a couple of instances and you should have the way an easy way of H8 when it comes up to shouting. It's a bit more complicated, but that's kind of the second or such that anyhow So some of the key benefits some of the key takeaways for fabric well first of all it is available You can download it go to my school.com you will find it it can run on a my squirrel instance It can run on separate server as you prefer Keep in mind that it is probably a single point of failure So probably you want to have two instances of the fabric running But everything is in place everything is there everything is documented and Use it all the replication technologies which you can or which you know already can still be used So this whole fabric thing is based on replication The only requirement here is that you are using the mice go version 5.6 because we are relying on the global transaction I'd be to make sure that the databases are in sync So in case that you're using all the databases You can't use the fabric but starting version 5.6 and the newer version 5.7 Which is still in alpha or in beta code that can be used with fabric as well And I said a kind of free of charge thing which you get is you can charge your database easily easily And as I said it relies on replications are using what you know already about replication can still be used going forward And in case that you run into an issue. It's a kind of the only on-the-fly thinking So when you need resources when you need more IO when you need more network Well, you just add a second server a third server for further And as I said, it's rather simple In case that you have questions or in case that you want to see a demo or something like this Well the questions we are at table 405 We do have a mice girl but it's probably easier to find the banner than the table but Yeah, in case that you have questions either ask them now. I think we still have time for one or two questions Sorry 40 seconds. Okay, then I stop immediately questions. If not, well, please visit us at table 405 So one question, please. Yes No Everything is based on the inodp storage engine and even the no sql one based on memcached is based on inodp You can in fact address the same data. So with two ways with sql or with the no sql based on the memcached one Okay. Thank you very much. He does know something about my ddb As my colleague from from Oracle just said Had to reshape my my slides a little bit from what I drafted before coming here and Last night actually I spend a lot of the night in reshaping Because all the questions that the guys that came through our boot Asked us in some way gave me an idea of what the way you're using My sql or Maria db with Drupal So this is the main reason why I want to in some way address my presentation to what I think Maria db will do for you to help you Uh, first of all, I'm Maria reserve y'all. I'm from Maria db.com Maria db corporation Just knew we used to be skyosql till yesterday. We just change our name tonight last night From skyosql to Maria db corporation skyosql was founded in 2009 after Oracle acquisition of Sun From the same Founders of my sql itself. So with my friend. We are almost cousins and We have we have a very strong team of my sql. So actually when Skyosql was founded and Monty program left Oracle Was funded after Monty left Oracle a lot of it of the core engineers of my sql left and enjoy Monty with the new project We do provide then as a company Part of the code a lot of the code of for Maria db. That's not owned by us Maria db is owned by Affundation, so it's not something that we own Maria db corporation is something that provides services around Maria db And we also have this strong core of the team of of experts and engineers around that Maria db is becoming more and more popular is adopted by a lot of community or the community drivers and Yep, very interesting customers in terms of people that are adopting Maria db and using Maria db in their own premises So what is Maria db? Maria db is a an enhanced drop-in replacement for my sql. This means that in terms of using it It's binary compatible with data. So you just switch of the server them at my sql server install Maria db and Just start the server and that's it. It's more or less like doing an upgrade of an aversion from other one version to another version of As I said, we just support it in terms of Maria db corporation because it's not owned by us the strong point is that we still want Maria db to be an open source project So that's why Monty Venus wanted that No company was the real owner of the code the bottom nation. So Just to put it in a safe to be sure that there was possibility to be sold again And Maria db is becoming more and more delete in database platform for cloud as you see a lot of Open source community is reaching from my sql to Maria db Just to mention what my colleague just said before for my sql When it when it when you mentioned that you need to upgrade for for what you you get from the distribution Actually, most of the distribution are now distributed Maria db instead of my sql So if you want to upgrade you really need to remove Maria db in the summary of my sql So it's it's becoming the default of the lamp stack from these Benders So the point is that I wanted to tell you what my opinion is The good part of Maria db that can help you with with your Drupal application Drupal based application But it'd be a spot of the of the Drupal setup process So when you install Drupal Maria db is actually one of the choices that you can pick from The database part of the installation As I said is as being a dropping replacement is it's like a non-brain just just replace it and use it and in terms of Differences this is the main question that that we had yesterday today from from people that came to the booth Say so. Oh, this is a new flavor for my sql So what is the different? Why should we pick this one or that one and? I Just prepare this light to show you what are the the main difference that we think in some way make the differentiation between minus We support more storage engine if compared with the default storage engines than my sql support We have specific storage engine For a specific task We support extra db that is a dropping replacement for me to be himself I think it's come it's coming from the corner, but we Work together on this storage engine to improve the performances and And we think this is much more performant than any other moment Well, you can see the list of the main differences Mainly main the most of them are related to the optimization part and some new features that are Maria db specific I will go through some of them to show them what we think are the most relevant for you Extra db storage engine as I said, it's our default as a storage engine like you know, it is the storage engine for my sql In terms of performances It's more relevant because in terms of it in the disc, I mean we have a better performance is when we have to write on the disc And in terms of if you add I don't know if you are running Maria db or database in the cloud But in terms of using the db buffer pool, we save the buffer pool actually we save the buffer pool so Taking off and on nodes is much faster because you take what was stored in the buffer pool every time That you switch on and off a server Is backward compatible with you know the be again, so it's easy to switch from one storage engine Is any one of you still using my eyes on for the tables? If so, please don't do it unless you really want to Because my eyes is a great storage engine if it has been a great storage engine and it's still the faster Storage engine available, but you have to handle it carefully if you know what it's doing It can be your friend, but if you're not really using for the what it has been designed and used You can run into troubles. Of course. It is it's easy to break it. It's not transactional So it's fantastic if you have to Do a lot of insert and insert a lot of data, but it's not really a reliable in terms of transaction Spring storage engine Anybody of you is using Sphinx now in MariaDB Sphinx is a Storage engine like all the others. This means that you can take all the advantages of Sphinx without having to Go outside of the base. It means the data sorting Sphinx so the engine inside MariaDB are handled the same way all the other data are handled so you can use the search engine of Sphinx and Use it in joint with other tables from MariaDB. So it's really transparent the way you can use it So we take you can take the most of Sphinx and and Of the other things of MariaDB I will go fast. I'm sorry, but I want to cover some some other things that might be interesting for you TokuDB. Is anybody of you familiar with TokuDB? TokuDB is a just used to be a Close source storage engine till last year and then it has been released as open source It's pretty similar to in a DB in terms of structure is a transactional storage engine But the different the main difference is on the way it deals with indexes It does not refer to B3 structure, but it uses a fractal index structure This is pretty convenient if you have a lot of rights and you hit to this a lot because the way it accesses the data being This way to use index much more Efficient is really faster. TokuDB also use data compression. So it's really interesting if you're running your your database on a Server that use SSD you can have fast compression and the compression from all your data So it's something that if you are in this set of optional opportunity, you should think about connect new storage engine for MariaDB. MariaDB 10 is a Very nice thing that a lot of our customers really love. It allows you to connect Externally that there can be any kind of extension more or less that just lists the most the more relevant As if they were local data in a local database I mean you can access an xls file, a csv file or any other files outside your database and handle those data As if they were local Threadpool is probably something that you would like because for what I'm not a Drupal expert of course, but For what I know and every time you connect or a customer or a user connect to a Drupal website There are a lot of small things that are written on the database and this set of connection and writes are a really expensive in terms of Efficiency All the queries that go back and forth to the from from the users to the client side to the database can be expensive in terms of threads any threads that's a live can of course Affected the performances of the system With the thread pooling or the thread pool you can create a pool of threads that can be reused and all the future connection will use Already open connection. So this will Increase the performance of your system It's easy to to to switch from not try to pull to try pull just changing a simple time So it's something that if you're in this kind if you're in this situation, I suggest you to to try and use Sub queries as I said when when Monte-Paraga and MariaDB company was founded I would say most of the optimizer Team engineers from the optimizer team left Oracle and joined the Monte in Monte-Paraga team and The bigger for they have done in the first Few months it was to rewrite the optimizer for my SQL This means that the subquery is now now are really effective. They work and if you have been Experimenting the way the subware used to work or work in the past for my SQL, you know that they were Normally not working. So the only solution what to to Split them to use several set of select and then join and then now they're working. They're working mainly because MariaDB has this Subware cache this is working pretty pretty well and To to be correct also my SQL 5.6 has now a new More perform a way to use To support and and supports our queries we think that our our our solution is a bit more Group commit The idea with the group commit is to Allow you to condensate a set of of transaction in a single committee instead of hitting the disk any time that you have to Send a commit to your server This allows you to it to this Less and of course any time that with that we hit the disk is time-consuming and of course Performances are affected by this If you are using replication as I see some of you are using This is can also be Way to improve the way you replicate because with MariaDB we also have Different way to do replication and one of those is parallel replication that takes a great advantage of the group commit This means that all the transactions are executed in groups from the master will be Replicating groups to the slave. So this will reduce the time To for the for the slave to catch up against the master. So this is something that in some ways a win-win solution Gis, I don't know if some of you is using Gis Gis it has been bigger for For MariaDB in the last month We now have full open Gis support This is becoming more and more interesting for for all of our customers that want to Want to develop solution that have maps of solution powerful through and also how to Connect one place to one other being routed to a specific point in the past the implementation for my as well And MariaDB was pretty rough. So Not really satisfied and the customer weren't really satisfied now. It's it's a really Complete I've heard before that a lot of person asked my as well and asked as well about Scalability and I I have a little beauty I know I know that many of you and many of people who's developing through a solution. They are not Really responsible for the database. They just sometimes connect to something that's already there and what Surprised me a lot is that you don't Especially also from from the pool that my colleagues just did I'm done Okay You don't know what what what's happening on the other side Give advice give advice and also don't don't rely on a single server on a single server. It's becoming a very Dangerous single point of failure. So think about replicating think about their inability and Just to build safe solution. You're responsible for your solution sometimes. So think about all those things Skip skip skip Okay, I think I think I'm done Just this Well, you have all the slides some reference referred to the knowledge base for my DB most of the information that I have to Run through there My name is there. You will have the slides and use this As a reference to see if some of the things that I've listed can help you