How's it going? I'm not sure I'm going to find through the my windows. The. Meeting notes notes up here somewhere. They paste the link in there. We're seeing the meeting notes. Yeah, I am. Not some corporate secret website. Are you going to be on the call this Thursday? I anticipate being on it. Yeah, cool. Because I'm technically at a face to face meeting most of the week. I am hoping to step out for that phone call. In case I can't, I may ask you to go ahead and moderate it. Okay. I'll make sure I leave my, the meeting before we're ready to set up. Good comments coming up pretty quick. Yeah, I think it's going to really sneak up on us. You need to figure out what, what to finish off on the zero point one. You know, I saw the camel case. Change. Maybe finalize HP Jason format. Yeah, there's a couple of other ones that would be nice to polish off. Yeah, but on the positive side, it's all kind of smaller things to me. Which is nice as opposed to really big controversial things. That's good. Hello. Hello. How's it going? It's so weird when you're sharing just that one window, but we can still see your mouse moving around and you clicking on things that we can't see. Kind of freaky. What was that? Well, I believe you're always sharing one window, right? Yeah. Well, we can still see your mouse as it goes over the window. And so if there are other things on top of that window, you can see the mouse moving and clicking on stuff, but it doesn't align with what's being shown to us. So it's kind of weird. Oh, that's funny. Yeah, it's neat. So I'll just give another minute. And now there's a couple of people that said yes to this time. They're drawn yet. I can hear a spell a while away. All right. Why don't we get started? So the intent of this meeting is to talk about interoperability of different projects using cloud events. And, you know, maybe it's a little bit early, but I think as we're finalizing the spec, it makes sense for us to start thinking about how would we see projects actually incorporate cloud events, be able to prove that we can move these cloud events between these projects, either as producers, middleware or consumers. And I'd like to open it up to, you know, the call and have a start brainstorming on what do we think would be a compelling demo of cloud events with respect to showing this interoperability? Anyone? No one? Well, let me start, even though I already talked way too much in this forum. So I can tell you what we have in mind from the Microsoft side, and how we think about integrating this so that we can figure out what the demo might look like. So our product that we'll use this is Event Grid. And Event Grid is effectively an eventing fabric that sits underneath the Azure platform, and more and more services are going to are raising their events out. So if you are adding something to a storage account or a blob, then that storage account is raising an event about that blob being created, and then you can go and react to it. So, and we're combining that in our world with Azure Functions. So that's our equivalent of LANDAS. And also with Azure Logic Apps, which is a, there's an AWS thing for that as well. It's a workflow. It's kind of a workflow serverless workflow engine. Is that the same as step functions with AWS? Yeah, exactly. Yeah, that's the name. I always have a hard time remembering what the AWS things are called. And the other thing is, and then we can also integrate that event flow with our event hubs. So that's the kind of a Kafka equivalent roughly so that you can go and archive events and you can go and do, you can process events later. And we also integrate them with queues. So that's kind of our internal flow that we use. And obviously we want to go and open that up to everybody else. So the events that are being emitted today from Azure are already subject to a set of constraints that we set. So it's not completely Wild West, how teams can express their events that follow through Event Grid. And what we're planning to do is do a mapping of that canonical format that we have to cloud events and then just make it possible for us to go and push towards cloud event consumers and also receive from cloud events producers. So potentially I could tell you that I want to subscribe to a cloud events format? Yeah, so I think that's how it's going to turn out is that you want, if you want to have a notification from a storage blob, from a storage blob account about new blobs being created, then you will be able to wish for a cloud events format and then we'll push that to you. What kind of timeframe are you looking at for having that capability in prototype stage? We can make a mock-up of how that will look fairly quickly. We can do that within a week or two. Obviously product integration is something that will take a little bit more time also because of where we are in terms of stability. But we can make something that looks very much like what it will look like within a very short time because we have a pretty clear notion what that should look like. So effectively we can make a demo with a little bit of hand-waving. And then as I've mentioned in the past, we have an open-source project called Dispatch, which flares above open-faz and RIF. You can have your choice of fazes underneath. We're using cloud events as a common substrate within our event bus. In fact, yesterday I was doing some updates to it based off of, it was originally implemented maybe a month or so back where we had a different spec and I updated it to the latest spec. Which means you take an event in on one side, then you push it out in different rendering on the other side? For the most part, we will convert existing events into cloud events and then use that as the common format within our eventing. Do you have the vendor stuff already integrated into that? Not yet. We are working to integrate external events to be able to pull in different clouds. Right now we do have different event sources, one of which is vSphere. So what kind of events does vSphere emit? Things like create, delete, VM, different lifecycle management events that are occurring based off of the platform. We have flexibility to be able to create additional event drivers. It should be easy to do if there is an external event source that we can hook into, to be able to consume cloud events directly. Could you emit cloud events too? Yes. Right now the main use of it is to send the cloud event into function. So being able to use RIF or open FAS as a function fabric. I'll chime in. We have an analogous use case, an analogous situation where we have event sources and Google Cloud functions and can also do analogous prototyping. Obviously it wouldn't go into production when the specs influx, but creating a bridge that can go between the things. I think it's the demo that I've been itching to create. What about the other folks on the call? What kinds of things do you have? Hey guys, this is Chad. At Oracle we've got a couple layers to this. One would be our event service. There's nobody on the call at the moment representing the event service, but they're integrating cloud events into there so that they can both receive and emit cloud events and transform into a cloud events format. That service will be receiving events from a lot of different Oracle applications and FAS offerings. I need to check with them exactly what we're going to be announcing around CNCF, CUBECon timeframe, but the stuff that we're working on in the FN project site is supporting cloud events natively as an event type for FN project, which is open source.  I'm sorry, I was typing. Oh yeah, no worries. That's the FN project. Oh, right. That's currently open source. That's open source, yes. And we'll be announcing support for cloud events at the event inside of FN. Doug, that actually begs the question as to, that might be on the agenda item for this week is, what kind of PR do we want around CUBECon? Right. So I think I'd like to see what we can actually do. And then I think that's a natural question that we should spin up. Yeah, I don't know. I don't know that the PR question is something that we need to worry about in this call. Yeah, I mean, I think Austin has been working on the, and somebody I've gotten his name working on the website very much in anticipation that like we want to have a nicer presence on the internet. That I think that like we want the, what we've talked about is that the repo and the website would be like welcoming to people. Whereas right now it's getting there, but it's not quite there.  Do you want to continue? No, I think that's it for us for now. Yeah, this is Louis. From Huawei, we have a tool that can run on your laptop, or sort of a tool where you can actually be a consumer of events and evaluate various functions, essentially cloud functions or Lambda functions, whatever you want to call them. Is that a development tool or is that like for desktop apps? This is really a development tool. So it's really sort of called the sandbox for evaluating various cloud functions. And that supports cloud functions from different providers. We can add that functionality. So, you know, once the cloud event is earned up, we can easily add the ability to consume those events. Is that open source? Not currently, no. Is there anybody we've missed from the call? Klaus? Yeah. So personally, I'm involved in Qplus. And then Qplus is also starting to support cloud events. I have to check with the Qplus developers what exactly would be possible. And just so that I have it for the notes and I've looked at Qplus, but I'm not sure I could say it as accurately as you. What are the like sort of, what are the key attributes of Qplus as a fast in terms of what it supports for either emitting or consuming events? Well, I think it's mostly about consuming. It comes with support for Kafka and HTTP. There was a note on the serverless working group, I think, about like supporting Kubernetes events natively. I didn't have a chance to look at the code, but I saw the announcement. Really? So I noticed there's a related project that was emitting events from Kubernetes, but I think that's not directly part of Qplus. Okay. I'll have to look up on it, but thanks. I think they call it Qwatch or something, but I would have to check with the others. Yeah, this is Doug. I'm still checking on the IBM side. Obviously, since we use open whisk, I'm trying to see what kind of integration we can do there. I'm assuming it's more on the consumption side than producing side, but I'm still doing some investigation. How much you guys know. And Sarah, to your comment about Kubernetes events, it is something that we've talked about the adding into dispatch, but I don't believe it's scheduled to be implemented yet. Trying to find, find if I have any reference to that. So much happening. It's hard to keep up with it all. All right. So it looks like we have, you know, everyone is doing some initial work around cloud events. I do wonder how we can, how we would be able to stitch all of these together or show interoperability between the various services. So we're working on some like sort of Kubernetes based Istio based kind of control plane stuff. I don't know if, I mean, Qubeless is obviously Kubernetes Istio based. I don't know if anybody else is. Now dispatch is on top of Kubernetes. Go ahead. I think for a demo, one thing we should probably think about is a kind of, if then scenario where we, that is easy for us, all of us to do. And to realize like, you know, there's some, something that happens and have an implementation of that. And then there's a routing, routing of some sort from peer to peer to a middleware involved to get that to the receiver. And then the receiver does something, but and that implemented in a very high variety of different infrastructures and then go and play, play and play them basically to make it one's very simple generic scenario where the focus is on the interop and not necessarily on the scenario per se. The scenario can be fairly straightforward. It's very, very simple basically because we want to show that it works from everywhere to everywhere. That's something I would prefer instead of doing. It's something that is, you know, more aligned with a pragmatic or practical solution. Yeah. When we were first talking about interrupt demo, I was kind of thinking because we had like kind of set aside the whole like how these things get set up that we could just have a like a one event sort, like magic happens for how these things are connected and an event source, an event source emits an event, right? That then triggers functions on different destinations, right? So you could have like, so like we could construct it so that we have a like cloud firestore project or Google cloud storage project that emits an event, right? That goes through our little prototype. And then that with some kind of hokey registration system that we do behind the scenes, or maybe we put in a file. So it's clear that we can, other people can add to it. You know, we just, or GitHub just like some kind of like placeholder connector thing, registration. And then, and then we can show how that is consumed at different places. Is that the kind of thing you're thinking of? Yeah, I was thinking more to go and normalize on the event. Yeah, exactly. Rather than, so basically everybody builds, everybody builds the same scenario where the event ultimately, a set of events, not one, but a set of events are representing effectively the same thing. So I'll give you the example of inserting something into creating a new blog or creating, let's make it super abstract, create a new object. The create new object, if we make a create new object and delete object gesture, that's something that is generic enough so that everybody can go and interpret that in a way and it makes sense for some emitting system. For the demo, we can keep it very abstract. And then we can have emitters from different contexts which go and emit that sort of event. And then we have handlers on the other side that handle that event. And really the constant piece that sits in the middle between is the event per se. So we've been normalizing effectively on that event as the interrupt anchor. So we would all be demoing like we're using the same format and theory there's interrupt. I mean, I think the most compelling demo would be like one provider emits an event and somebody else consumes it, right? Yeah, I'd be happy if we had end providers and end consumers and we could go and just make them all plug together. But for that we need to have a... All the emitters obviously need to be different implementations of the same thing and that's why I'm enforcing something that's very simple and canonical. Is there a fairly generic like pub subsystem that can sit in the middle that everybody can hook into? Well, I think the key thing is that we're... Like, certainly Google has followed the sort of this model of being able to subscribe to a very granular event. And so the idea that we would just create a fire hose event to a topic is not ideal for demonstrating the power of this venting system from our perspective. And so we don't want to normalize on something that we think is... It doesn't take advantage of some of the opportunities of this format. I'd also say that it might make sense to have something that's more tangible for end users to understand what is this object and why does it matter to me? Yeah, I mean, sort of one of the classic examples is either somebody puts something in a data store and it kicks off some kind of business analysis, data analysis, or the classic, I'm gonna put an image on some kind of... We all have... The folks in the room have cloud storage things, right? And then, you know, and then that does something with it. Some nails. Some nails, yeah. Compnailing is our canonical example for event grid and storage. So that's the... It seems to be a classic, but no. Exactly. I just wish there was a better demo than that. I'm getting tired of that one. Yeah, I mean, we have a demo which is like... It kicks off like a safety filter, right? You can go and insert a customer, a new lead into a sales database, and then send and spam right away. Sorry. Well, I guess we could have an image put someplace and then watermark it with cloud events. Oh, I like that. That's cute. That's actually the... Then we can share it on social media. I love that idea. So then we have... That was the other one. So you could have the user signs up for web, like for app, ad lead in CRM. I like to know... That sort of general database event to app. I'm impressed with your use of special characters there. I knew the Google Docs tricks before I worked here. So Louis, Klaus, Chad, comments, thoughts on ideas? I like the watermark idea. I mean, we could show how anything can emit an event based off the various cloud storage solutions that we have. And then any of the consumers on the other end, each have their own set of functions or workers or whatever you want to call them. But they receive the event because they know what that event type looks like. So any publisher can publish onto some media area. And then any of the consumers can see many of those messages because they know exactly what the format looks like. And they all end up pushing into some Twitter account or something with the watermark dimension. I mean, it is sort of the quintessential example of a serverless today, an event-driven app. It's hard to get away from it. Yeah, we could all put our logo on the watermark. Yeah. Yeah, that's true too. I'm glad I went slow. That would be very genuine. But I'd like to also have the, I mean, I do think it's simpler to just have an example of an event that where like for a first pass, getting an event where all of the data is in the event and you can operate on text might be easier for people to like understand the concept. Because the code is much simpler. It doesn't depend on other libraries. And it would also be inclusive of the folks who don't have storage offerings. It's just an idea. And it might pull in some of the like, I write this to database, like so, Adelaide, and you know, like post to Slack. Like in my dreams, right? This would inspire the like the slacks and the CRM is to be like, oh, wow, we should consume cloud events. That's why I'm always using like, I used to insert new sales lead thing as a, as an example, because that actually picks up a bunch of the, it's something that lots of people can relate to when they're building business apps. And then I basically say, hey, and you react to this by crediting extension application and that's something that seems to be resonating. I'm not saying we should use that exact thing, but using something that's a very canonical database record that people can relate to would be very useful. Because I think for all the cases where the events are not, or sorry, very many cases where the events are not necessarily about motions of infrastructure, like insert something into a blog. Lots of those will be about state changes and databases. So, so do you, I think that, that really resonates. Does anybody have any other specifics on the scenarios or should we talk about like, what are the next steps to get us from here to there? So I just posted a link up to it's an example from dispatch where we did a buzzword bingo slack bot. In the chat? Yeah. Yeah, I see. So since you're talking about Slack, this was one example that we came up with that if you put in the right number of buzzwords and posting on the Slack, it'll come back with bingo. This is just just one more file and I might be able to get events submitted from something like NetSuite or PeopleSaf into some cloud events format, which is, you know, pretty big enterprise apps and then anybody could process, for example, a new record or a change record or something. So I need to go in and explore that a little more. I have to jump into another call right now, but you know, kind of send for whatever we end up deciding on for this. And I've got a couple of people helping out with the words. Yeah, I think that'd be very exciting to actually have a real, like a higher level app that also showed examples of these events. Okay, I'll follow up on that. Super. All right, other ideas? Should we move on to next steps? We're looking over some of our other demos. You know, we kind of, we have a blog demo as well. So if you look in the examples, there's some additional ones. So practically speaking, for the blog demo, that's going to be very simple for us to go and hook up as a prototype because we can go and push to a function and the function basically does a transformation and then pushes to whatever you want it in as a cloud event. So that's going to be very practically easy within the existing production system. So that part is going to be simple. And then we have to go and figure out whether for the other one, whether our CRM people want to go and play with that. If we chose the CRM. You mean our Microsoft has a CRM? Sorry. Yeah, we have dynamics 365 CRM. I should put this up with Microsoft. So I think the next step would be to define like proposed specific events, right? I mean, this was part of our point one milestone anyhow, right? Because I think there'll be, I think our cloud storage events don't actually put the, like we don't encode the actual image in the event. And I think that that is desirable because you might not want to act on the whole image. And that's like a potentially a lot of data. You should have, you should have a link in that. So yeah, there's a reference. Yeah. But like, so I expect that there'll be some things to put out in that, that detail, which I think would be healthy for the application. So, so we have the sort of. Yeah, I think I'd say that if it were a link, then we would need to worry about credentials. Access for that. Although I think that from a specification standpoint, I think that we would want to make sure that we allowed for. Like I wouldn't want to set everybody's expectation that images have to be public to use cloud events. Yeah, I want to make sure that we wrote down, this is how you would do it with access stuff. And for our demo, we're not doing that. Right. Um, so. I think it's actually good to make a point of that, that, you know, when sending a cloud event and you're referencing a resource in that cloud event, the receiving that cloud event doesn't give you access to that resource necessarily. It just says something changed. And if you want to get the details, then you still need to have a way around it to go and access it. I don't think that necessarily. There's that implication that you always, you know, if you're, if you're allowed to receive the event that you're also allowed to receive all access to the resource. Yeah, I think that that's an important point to make clear that will actually make people more excited about using cloud events. You know, another facet of this is multiple language support. Being able to use C sharp. Python, et cetera. Go. Yeah, I think that would be great to have a demo. Well, we will definitely do everything in C sharp. There was a reason I mentioned that one. No, but you would actually be surprised how multilingual we are inside. But I think for the, for the audience, I think you're the natural career off the sharp. Yeah. Yeah. So this simulator that we have can support a number of different languages in terms of the, the functions that we can evaluate. Right. So, um, for the create object and delete object, that's a database object. We have lots of different kinds of who has data store.  Um, uh, who else has a data store that could turn into a cloud event. I know that many of it doesn't support cloud event natively, but they do support, uh, advancing. What was the first thing you said, Anita? No, Minio. Minio. Yeah. So from an architecture perspective from the, like from the CRM system that I was talking about. Um, I was not thinking about that being a database raised event, but it's effectively when that is logically created inside the CRM app, raises that as an event. So it's not, it's not a trigger, but rather a something that the CRM app does as a, um, you know, I just created a new object inside of it. And in addition to storing it, I'm also going to go and raise the event about it. Yeah. And what I was kind of thinking we could potentially do with fire stores, it's a general database, but people often use it to keep their like lists of users. So you could imagine that it's user create event. Like that you, it's a, we could have an example of like, look, we receive a general database event and raise a application. Level event. Right. So it's would sort of show the code of how someone did that. Like, you know, like for, like a lot of our customers are, are themselves creating things like CRMs and whatnot. That have users. I mean, that's, I think at that point it's an implementation detail, but the, I think, um, and if you want to go and delegate that raising up that event through your database, I think that's certainly fine. Right. I'm just trying to think of the, um, interoff example there. I think that that would be like, then we would have a receiver, right? So then we would sort of have a receiver. And you could imagine that I'm now contriving a scenario in my head. Yeah. That like when a customer is created, it's some, you know, some system post is just black and some other system does something else with it. Yeah. Exactly. So I mean, literally this, the, the, the send spam was a semi-serious. Um, you often have, uh, these, um, situations where you sign up to something and then, um, the, um, that company has a house in house fair the next week. And so you get an invite right away for, to that in-house fair and just because the company just got to know you. And so that's a tactical extension that you can very nicely do with an event driven thing. Yeah. So another thought is to, to kind of a trace route by taking, consuming an event, adding a designation onto, into the data, just text, you know, text wise thing received by, and then forwarding it onto another service. And if there's multiple services, you know, you could put in a randomization of who I send it. Does dispatch send it to Google or does it send it to Microsoft and then Microsoft decides to send it back to dispatch or Google, et cetera. Mm-hmm. You mean just bounces, just bounces around so you can demonstrate that it actually went through, um, that many systems? Yeah. Yeah. But it was accepted and it was consumed. And then the new event was produced. Ah. And, and so when you think, think about interop, you should be able to accept it from anywhere and deliver it to someplace else. Yes. And have it consumable. Yeah, that's true. If the, if the relationships, if the relationships for the routes effectively are set up, I agree with you. Yeah. I think the routing where, um, I don't know if we're there yet to have consistent routing across multiple providers. Yeah. The routing is. So one of the things that is in the, um, that we need to agree on, I think for practical interop, I did already a bunch of the work if you might have seen from the PR, um, on H, on HDP mapping. Um, but there's a few things that we need to go and figure out, um, um, to make the HDP interop work. And I wrote that in the, in the email, um, I think Friday, um, that I sent to group because we need to have a, um, there's a few practical things like needing to register a target with the publisher for data protection and security. Um, that's commented like AWS does that for, um, SNS and we do that for Event Grid. Um, there is the question of where do you place a token? And if you look at around the world and what people do for webhooks, there's 500 different ways of doing that. Um, so there's, there's a few practical things we need to go and arrive on and, um, uh, in terms of interop. So there will be a few for a demo that we want to show within a very short time. There's going to be a bunch of warts, um, and we'll probably have to go live with those warts, but just put them on the table what they, those might be because I think one of the things that we can do as a, as a, as an, as a side effect of this interop work is actually go and define a profile for what a webhook really is and then, uh, publish that. And I think that's even orthogonal to what we do. Well, it's, it's related, but it's not necessarily only for cloud events. Um, that we say, Hey, you do an HP post and the HP post is done with authorization in the following way. And, um, for DDoS protection, you need to have a registration gesture. Yeah, I think that, um, I would just want to pause you there, Clemens, because I think that we've basically, until we get, um, we agreed like a long time ago that this, how we set up the connections is outside the scope of the spec. And I think we'll make a lot of progress, particularly the things that can be open in, in sharing what we're all doing to set up these things. And that'll move the conversation forward, but I agree, like in the next few weeks, deciding on all those things is, I don't think practical. Yeah, it's not, it's not going to work. So basically when, when, for all the, the delivery, the details of the delivery, the delivery, like the, the true like specificities, the security pieces, um, there will be some, um, um, special accommodations effectively for every, certainly for every target and, and mostly for every middleware that's there. And then we have to go and figure out over the fullness of time as people say how to, how to even those out. Yeah. So like, I think we should say assume for the purpose of this demo set up is not, it's like behind the scenes, non-standard, you know, like, you know, might, you know, so individual group, like, you know, it's sort of individual, individual projects might demo that, but not core part of interop, right? So we want to focus on events generated and consumed in the same format. Kind of that helps in some way. Okay. So let me put this up here. Um, so then. Does somebody want to volunteer to create these, a draft of these storage events, create and delete? We already have some, but we've got to take, like, you know, we had to start with either the Google Cloud Storage one or the, um, Microsoft one and just turn it into something that matches the cloud events back. I mean, we have those events. It's just that I have my hands full with some of the other things already. Yeah. I don't know what I can do this week, but I could definitely brush up. Yeah. Yeah. I mean, if you take a look around what, what other, what the plastic platforms are emitting, I think they're all fairly similar. Yeah. I mean, we have examples in the repo. Yeah. Although I don't know if I've, I've, I've looked at the Amazon quite a bit, but not the Microsoft one. Clemens, do you see if you just add to the repo or send me the, um, an example of Microsoft? I can't, yeah, I can send you, uh, we have a, we have a doc page where that's, um, we can paste it. Thanks for digging it up for me. Oops. So do we see each consumer subscribing to each producer individually or having a central infrastructure thing in place? I think that's part of, I think that's part of this common, the, the, the, this is conflict, conflict dependent because all of those things will be different. Um, I think that's part of the, the, we're going to go and combine things, um, but, and we're going to make sure that the flow is compliance, but I don't think the subscription gesture per se, something we can be prescriptive about. And I'm kind of, everybody will want to show their own thing, right? Well, I don't, I'm not saying you'd be necessarily prescriptive as much as I'm just worrying about, okay, I want to write, let's say I want to write a, a consumer. How many different types of ways do I need to connect up to consumers? I mean, to, to producers is what I'm trying to worry about in the timeframe. Well, I think that what we'll each have to do is figure out what other consumer or producer is easier. Like I think that at minimum, we will have sort of like sort of, uh, plan, uh, so this is demo assumptions. So I think that what Clemens proposed, I think is a great minimum bar. So minimum, same format, um, used within a cloud provider, and allows, um, who was it that had the desktop tool? Hawaii? That was Hawaii. Yes, we got the desktop tool. So we'll be able to support that common format. Right. That allows to support local evaluation of functions from multiple providers. Yeah. Just that can consume those as well. Yeah, we can have multiple consumers for certain. Well, I think it's the, how do you hook up the consumer to the emitter is the question. Yeah. I think, and I think that's, that's going to be difficult to say, we're going to do it this way because the work is not that far yet. Right. So I think that first, like, let's, let's see who gets there first with like different, like, I think we've all got to like sort of figure out what this stuff looks like. And then, um, and then we can see whether we can, I think we, we should have like, if we get that far, we should get pairs of people to hook up with each other. And something we could consider is that if we, if we get some traction around having our different things work, then we could have like, maybe we could have an evening hack day or something like, you know, for those of us who are going to be at KubeCon in person, we could have a like, let's all make some cloud events. And then maybe we could get other people who are there to work on adding cloud events to their systems. So just, just out of curiosity, is it, is it not worthwhile at all to try to produce sort of an event hub that subscribes to all the producers and then each subscriber can subscribe just to that one event hub and get all the events for all the producers? I think the challenge is, is that we have not aligned on what it means to have to register trigger and what exactly that is. And so while that's interesting, I think that it may be ambitious for three weeks from now. So I think that, you know, I mean Austin's not here and I know that he's very much interested, like they have their gateway. So I think we need to sort of hear from the people who would do those things, how they envision it. And I think that if we move forward and we have, these are the specific events we're going to interrupt with. And there's still some detail to work out about, I'm sure. Right. We'll be like, Oh, no, that's not what I imagined it to be. Yeah. Yeah. So I think when we get into the exact format, that that will then illustrate what exactly the interrupt is. And then. Yeah, I agree. So when I wrote down for the HDP binding piece, I think that might be a good baseline to start from, but then there are still, and I'm actually, I'm intentionally staying away from some particulars, like I'm not prescribing which HDP methods you should be using. I think that people might be saying, yeah, for, well, for this thing you should use a put and for this, you should be opposed. And I also want to have this work for soliciting events from, from a different place. And so I just made it a mapping into the HDP message. And then, and then I think for a prototype, as far as you can go is you could say, I'm going to push those events with that HDP message format effectively. I'm using HDP post and I'm going to react to HDP posts on my HDP gateway for the functions. But then there's, but then still there's going to be a bunch of things which are unresolved in terms of, you know, what is the, what is the purpose that I need to go and get at this thing or do I need to have an HGIP and how does all those things work? We're not going to get to that. We're not going to get to that. And so I think that will end up being something that for each pair of publisher and consumer, and I include middleware in the middle, in the middle into that because that's being a, you know, a consumer on behalf of in that case. I think that will be custom. So I have to duck out. I'm sorry. I have to run to my next meeting, but I'll take with this action item. Thanks for pasting that in Clemens. And then I'll catch up on the notes with whatever the rest of you. So what, so one last thing is I'll also get my team to document how to bring dispatch up on both, uh, uh, AKE, AKS and GKE. And that might also help with, uh, having a independent project running on each of, each of those clouds. Right. Anything else? That was good. That was a good meeting. What, what is the next one? Yeah, I think we might be gated on Sarah doing the storage, create and delete thing. Okay. Unless Clemens, you want to send out your, um, your event grid stuff as, uh, as a proposal for starting point. Um, I have, I think I have a version of that even in the, uh, Yeah, I can, I can, I can try. It's, I'm already spending most of my day on this. So, um, I, yeah, I can, let's, I would say let's give Sarah a day because. I don't want to do overwriting her. Nope. No, that makes sense. I just didn't want to wait a week because I thought that I heard her say, I was, I was, I was a little bit distracted. I thought I heard her say she meant I get to it this week. And I think that might be pushing it out a little. Yeah. If, if, uh, uh, Yeah, let's, let's, let's see. I'll, uh, if, if nothing shows up, then I'm going to do that probably tomorrow. Okay. Cool. Thank you. Great. And, and I think to, to Sarah's point, we need to circle around with Boston, since he couldn't make the meeting. Yeah. See, see what they're doing with respect to their event gateway as well. So if, if, if everybody on the call, if you guys could take a look at my, my HDP PR. Um, and, and also the Jason mapping, I have two of those. Um, that'd be useful because I think that's a, that's a baseline for the HDP. Um, uh, requests. And as I wrote in that email, I think there's a, there's a last bio problem as we just also called out. I'm not sure gonna, how much we can go and resolve that. Um, in terms of auth and DDoS protection and all those things would be nice. If we eventually could. Um, but I'm thinking that's a, um, that's a good step towards that. Um, I also have MQTT and MQP mappings already written. Um, I just don't want to, uh, um, overload people with review stuff. So I'm holding those holding off on those. Um, but I just wrote those MQTT and MQP mappings just to prove that what we're having is, uh, we'll go and map clearly into those. Um, and they sit in my personal repo. Sounds good to me. I'd love to look at those. If you don't mind, uh, Kevin. Go to, go to, uh, Clemens V slash spec in GitHub. Uh-huh. And then you find there's an MQTT transport and an MQP binding of the different name branch. And, uh, you'll find them there. Great. Thank you. The Clemens V slash spec. And then you just look at the branches and then there's one for MQP and one for MQT. Thank you. Welcome. Should we plan on another meeting this week or just wait for the weekly phone call Thursday? I would prefer a working meeting, um, in addition to that, to the weekly meeting. Yeah. One say Friday. I'll be traveling on, um, on Thursday, Friday. So Friday is not going to be possible for me. So Thursday in the morning, I can do it. I could go it, um, before our meeting. I would probably prefer for my travel schedule. It looks like eight to nine Thursday. All right.  Okay. And see how we can converge. I know the Doug is busy on Thursday. Yeah. Obviously don't wait for me though. And it would be nice to have Sarah back on. All right. Okay. I'll send, I'll send that out. And, you know, if not this week, then we could, we might be able to do the same time next week as well. Yeah. Next Monday would be fine. Yeah. And otherwise we still have the email channel. So we should go and try using that. Right. That's, it's, it's a proven medium. We don't have to do everything in synchronously. All right. Thanks all. Okay. Thank you. Bye.


hi she was seven i'm back so i just wanted to make this quick video to let you guys know that i appreciate you watching and if um you know you want to comment that's fine i don't mind any comments i welcome them all i don't delete comments so feel free uh i know a lot of guys are commenting negative things on some of my videos even downloading my videos and uploading them on facebook um i don't know but whatever i just say that you know i don't really pay attention to opinions of people that don't benefit me in the long run like there's nothing a broke man can tell me that's going to benefit me so um i enjoy going back and forth in the comments and trolling with you guys because you know i like doing that every so often but like i said your comments really don't do anything for me oh you don't they can they kind of do benefit me in a way because of youtube but that's about it so um do what you gotta do it didn't really bother me as y'all can go look at my old videos and see that i don't erase comments it just i'm the type of person that really does not care as long as you know it benefits me so whatever you comment that's fine y'all can argue in the comment section i don't care um you know life is good for me but um i'm just you know i just think it's hilarious that people take stuff so seriously like most of the broke men will come on the videos and be mad at women who want more out of life and more out of their men and expect more out of their men but i mean everybody's gotta be mad at something right might as well be that um but i don't have those kind of issues because i don't i never dealt with guys like that except for when i was a teenager or yeah very early 20s maybe 21 i stopped dealing with broke guys after 21 i was done i was like i'm done um so you know i really don't have a lot to say about them because i really haven't dealt with them and you know over 10 years over 15 years actually so it's it's refreshing to see that they haven't changed and and the way that they comment and the way that they are hurling insults if you notice a broke man will always insult a woman's looks and her weight why because he can't afford to feed her or buy her nice things to make her look better so that's what he's going to insult first because he can't afford to do any of those things for her um so by definition a broke man's woman should be ugly and skinny and starving because he can't afford to feed her or you know give her nice things or pay bills so she can afford to make herself look nice that's how she should look um so they you know they get mad and they really hate when a woman can do um you know what they can't do which is they home and not work and live a good life they hate that so they call you lazy okay another thing that they're gonna hate on is the fact that that your husband or your man is a simp they wish they could be simps because that would mean they have money okay and and a woman so you know you have to kind of read between the lines um they say they went their own way but they're still on our video they're still complaining like if you went your own way you shouldn't even be complaining you should be gone you should be with your band you know or with your robot or with your doll or with your hand that's what you should be uh but i guess it's kind of hard because all the movies and society and stuff like that especially around the holidays making people want to be coupled up and so this is when the mgtow's get real mad around the holidays because they don't have nobody to bring home to meet mama they don't have nobody to exchange gifts with they don't have anybody to sit by the fireplace and drink hot chocolate with they're getting antsy right about now because fall is coming up they don't have nobody to spend the holidays with so they're they're mad um and they're lonely and they're gonna get depressed this time of year they're probably gonna drink a lot and stuff like that so um i can understand why things are getting so you know volatile especially in the comments because it's about that time and you know i got my husband i got my kids i got my nice fireplace my nice cozy home i got chocolate hot chocolate marshmallows yes i i yes i eat i'm not ashamed of it i'm married i've been married for so long i can eat now okay i don't have to suck in and eat salads and drink water i've been married i don't have no prenup he ain't going to wear okay uh so if y'all are commenting i'm fat yes i know i'm fat i enjoy being this way i love it it means i don't have to worry about eating a cupcake and feeling guilty about it i love eating cupcakes i will eat cupcakes every day if i could okay this doesn't change anything i'm still gonna have the life i have okay uh y'all act like uh women that have weight on them can't get a man okay i got my man y'all should see my wedding pictures i was about 10 pounds less than this when i got married okay so ain't no big deal uh and so was he 10 pounds that's not a lot you know i can you can lose 10 pounds in two weeks anyway so as i was saying yes i'm sorry that uh a lot of people got offended in the comments like ladies don't don't type back to these guys they're angry they're broke wouldn't you be mad if you didn't have no money or no woman or a man and um women like look at you like a bug because of you know what you can't offer her we will be mad too i mean if i was a man in today's society i'm not gonna lie if i was a man in today's society i would be mad because it requires work it requires hard work it requires stamina it requires balls it requires motivation it requires strength and as a woman i don't have that i don't i mean i do but not to the extent where i would want to be a man you know i that's a lot of responsibility and it takes a real man to step up and do those things which is why when you find one hold on to it and it's rare and it's beautiful and it's masculine and it's a turn on and it's like dang i mean you could do all of that stuff you know and and it's great it's a great feeling and your children will grow up looking at that and only wanting that and their spouse they're not gonna go for losers okay they're not gonna go for men who act like you know little boys they're gonna only listen they're gonna be like well no my dad didn't do any of that my dad didn't play video games my dad took out the trash my dad played all the bills my dad bought my mom a car my dad bought my mom a house my dad did this so they're already automatically instilled with high standards they're not gonna take the bs from you know so admit they're just gonna be like no um so yeah also you know you'll see a lot of these mgtow guys start changing their profile name and not commenting and going to their alias around the holiday so they can try to get a woman okay i know your game and they're gonna fall in love and or they're gonna find a woman who makes them change everything about themselves and make them a better person they're gonna be spending money and they're gonna delete that account change that name or or whatever you know we are we already know how it goes as soon as one gets a woman it's over okay um but right now they're in their angry stage because they don't have the correct motivation to motivate motivate themselves to do better to please women because men are here to please women if you think about it in the ancient times the only motivation men had was hunger right and thirst so after they ate after they drank they didn't want to do much else okay but when a woman came along and they saw that woman they found a new motivation you know sex okay and this is what men want from women sex and after sex then they want companionship okay so if you meet a guy and all they want a sex they're still in their primal phase they're still in their primal phase and after they get one taste if you give them a little bit just not even a taste but just a little bit and back off that's their motivation okay don't even give it to them all the way let them think they almost got it and then tell them what they need to do to finish getting okay because men need to be motivated to become great okay you can't get a lazy man off the street and give something to him freely and expect him to be motivated to please you okay so ladies don't give nothing for free ever and always know that you're the man's the motivation to become greater mgtow i know you don't understand because y'all are mediocre to the fullest so this is not for you this is for ladies okay we know y'all don't understand what it is to be you know above mediocre we know that you don't care to understand that because you have no motivation because no women are interested in you why because you are almost just like a woman and unless they're lesbians or very desperate they're not going to be attracted to you because you're too feminine all right i'll see y'all later


Hello and welcome to the session. In this session we discussed the following question which says A and B working together can finish a piece of work in 5 days. By A alone can do it in 10 days. How much time will be alone take to finish it? Let's move on to the solution. Now time taken by A and B together to finish the work is equal to 5 days. Then time taken by A alone to finish the work is equal to 10 days. In 5 days A and B together finish a piece of work. So A plus B's 1 day work is given by 1 upon 5. This means in 1 day A and B together finish 1 upon 5 of the work. Now in 10 days A finishes the work alone. So A's 1 day work is given by 1 upon 10. So from here we can easily find out B's 1 day work and this is equal to A plus B's 1 day work minus A's 1 day work and so this is equal to 1 upon 5 minus 1 upon 10 which comes out to be equal to 1 upon 10. So we get B's 1 day work would be 1 upon 10. That is B finishes 1 tenth of the work in 1 day. So this would mean time taken by B alone to finish the work would be equal to 10 days. Since in 1 day the work finished by B would be 1 tenth of the work. So in 10 days B finishes the whole work. So final answer is 10 days. This completes the session. Hope you have understood the solutions for this question.


Hello, my name is Sveta Smirnova and today we will be talking about my school performance for DevOps. At first I want to introduce myself. I am my school support engineer with more than 10 years of experience. I am after a book, my school troubleshooting, I have a few hobby projects on GitHub and I am frequent speaking. The idea of this topic is raised by various communication between people who use MySQL but who are not DBA and who use it either from different time and different people. It could be application developers, it could be system administrators and today now people who actually wear many hats like who called DevOps. Another thing which raised me for this topic once I was talking about interviewing someone for support team, for working with MySQL and actually we in support we know a few things, a few very clear things about which hardware should MySQL use, which hardware options, which MySQL options by itself are safe and are good for performance but as expected people who are experts in other areas do not know about this secret knowledge and now I want to show you these options, these configurations which will improve your MySQL performance. But before talking about this secret knowledge I need to tell a little bit about how MySQL works. So what is MySQL? MySQL is database server with 25 years of history. It has a popular forks. This is a 100 compatible fork with enterprise and troubleshooting and performance features. And MariaDB server which started as a fork but now it's going to be an independent product with similar features like optimizer or replication but which are designed internally designed differently. MySQL has replication support from the beginning and this is important and I believe this is one thing which made it so popular. And replication is such a setup so that one service could be a source of changes, it can accept changes and other servers replicate these changes so they could be used for backup, for read scale and for many various purposes. And also it allows MySQL to be high available server from the very beginning. To understand how MySQL performance needs to understand that MySQL architecture is layered. It contains its part. And like in case when your application connects to MySQL server it uses some connectors. It could be MySQL command line client, it could be PHP, Python, Ruby, Java, C, program. It could be any program which uses OEDBC interface. Once that program connects to MySQL it goes to connection pool where authentication happens and some caches like if connection thread could be taken from the cache or could be created. Then your query goes to SQL interface which reads it, parser parses it into the tree which understandable by optimizer. And optimizer sends like decides how query should be executed. And sends this information to storage engine. Here it's also like could be used global cache and buffers. They could be global or engine specific. And if data could be taken from there it would be taken from there. And storage engines they talk with hardware. So practically with file system and they can also use memory and CPU to resolve the request. Where MySQL is installed in 2020. It could be started by hardware. It could be installed on cloud. And also it could be managed by container orchestration systems such as Kubernetes. For MySQL there are two Kubernetes operators. This is Percona Kubernetes operator for Percona X3db cluster. Percona X3db cluster this is a synchronous replication solution. So that you can have multiple nodes and you can write to them. And all writes will have the same data upon commit. And also exist MySQL operator. Maintained by Oracle MySQL team. So watch Alphabet's query performed. So it's when I usually explain how database administers database professionals. People who use database all the time during their working days. I'm telling them the first thing which you need to tune is query. Because query that's actually decides it's actually what you ask database for. So like your request you may request million of rows. You may run this query write it's effective manner or maybe not effective manner. So this all affects your application. But today since we are speaking about people who manage everything and probably sometimes do not have access to the application itself. We will start from hardware. Because hardware also makes a very good sense for MySQL. MySQL runs fast and good for hardware. And it's actually can run on even on Rapsberry API. But it could not handle on a small hardware. It could not handle a large amount of requests. Because if you want to MySQL handle more concurrent connections, process more data it's better to run it's even better hardware properly configured. And one more thing which needs to be discussed is overall MySQL configuration about watch because even if it's run on good hardware if it's configured not properly it could just like use small part of hardware possibilities and it would be not effective. So you need to understand how to configure MySQL properly. Okay, so watch is hardware. First how are we going to tune? For bare hardware you have operating system options. It's usually Linux kernel options. For clouds there is no much things you can do. It's actually it depends from again which contract do you have. Like for EC2 you can do Amazon EC2 you can do a lot. And for Amazon Aurora you can just use administrator console and maybe just buy additional options. For Percona Kubernetes operator for PXC it's a loss to limit resources. So like it decides and tell how much resources to use this. They could be defined as cr.yaml file and you can limit memory how much use and maximum usage and storage and CPU. A more short tune which hardware makes sense for MySQL to run fast. This is memory which has caches and directly access data. This is disk which practically stores the data. CPU which allows MySQL to support high concurrent environment. And this is network which is used for sending data between client and server. And first we will talk about memory because memory is a very important thing for MySQL performance. Memory configuration that's MySQL doesn't work when it's swapping. So you need to disable swapping. It's actually for modern kernels you need to set it to one in case swap is used only then it's critically needed by the kernel itself and not for other processes. MySQL supports NUMA but NUMA should be NUMA interleaved should be enabled in BIOS. MySQL for NDB also there is option. NDB NUMA interleaved this should be also enabled and it works differently on MySQL server from Oracle and Percona server. On MySQL server it just enables NUMA interleaved for MySQL and for Percona server it fills memory with zeros as a start up. That implies a longer start up but it makes also for a work of MySQL Percona server for MySQL faster. More memory for MySQL is better. That's because MySQL has optimizations which allows to use memory without with minimal disk access and then flash changes to the disk. And memory access of course is faster than disk access, therefore it's better to have more memory. Practically frequently accessed data should be in memory. It's not always possible because that depends completely from your application but if it's possible that's a good thing to have. How MySQL uses memory? MySQL supports three kinds of buffers and global buffers they are allocated up to the limit and freed at showdown. Important buffers is NDB buffer pool. This is NDB buffer pool. This is pool where NDB stores updates. Actually it could store all active data set and could operate all operations from buffer pool if you have enough memory for this. And then data which needs to be saved on disk it would be saved in background which allows very fast operations. Performance schema tables. These are diagnostic tables. These are just... Here for example they do not affect performance of MySQL by itself unless they grow too high and just use memory which could be used for some different things. But again it's data memory for such buffers it's just allocated and never freed until you showdown the server. Session buffers they are associated with MySQL connections. So then connection starts they are allocated and they are freed and then connection ends. This include for example like I put here example it's connection and result buffers. So it's practically two times by net buffer length it's a small value by default but they could grow up to a max alloyed packet. So that's again it's maybe not very thin. And also MySQL uses memory for operation specific buffer which help operations to perform fast. Good example could be joint buffer size it's for each table pair tables pair and join like if you are joining two tables this allocated only once per query if you are joining ten tables it allocated nine times per query so again like you may use it for improving query performance but you need to be aware if you set it globally that it can be grow very high. Temporary table size for memory temporary tables it's again it's for each temporary table. All this data which you can access in memory then finally will be saved to disk and second important hardware is disk. Disk MySQL faster would be better so use modern disk like I don't think spinning disk is an option an option today unless this is something when you can allow slow write since maybe only for some special purpose. Disk should support parallel write so that's you can gain from multi-threaded execution. It also should use battery-backed cache in order to don't lose data in case of power failure. How MySQL uses disk? It stores tables data that's obvious it also stores log files these include binary log file these are log files which log all updates and use it for the replication on the source server it includes relay log files which are using on replica server to receive updates this includes storage engine logs like in ADB mantains red log file which use it for crash recovery it's also stored on the disk and it also contains some diagnostic like error log, like audit, general slope, query log and other log files which you can use for troubleshooting it's also some, if in memory temporary tables exceeds the size of the maximum temporary table it's flushed to disk and again that's MySQL uses disk for this purpose you may put all these things on different disk to explore more parallelization and give more capacity of your hardware CPU uses it to handle parallel execution it's configuration it should be set to noob or deadline it's not for default which is for user system so for better performance CPU governor also needs to be set to performance and not like power safe or things like this more course is better it's more course is important because actually number of core files limits how much parallel connections could be executed how MySQL uses CPU it's for user connection it creates one thread per connections but they are mostly sleeping and CPU uses it only for active frets that means frets which are executing some useful job at the moment but ground work by storage engine uses frets independently and to demonstrate you how it works you may see the difference on this picture in this case on the top there are connection frets which are perceived by the server then they serve to the storage engine and the storage engine executes its smaller number of frets if active frets running frets is more than storage engine frets they have to wait in its queue and there are algorithms which allows to tune how the queueing will work so what happens with frets in MySQL with active frets in case if there are less than CPU cores they are executed simultaneously if not they wait in a queue even if they executed it's if disk supports parallel write if it supports it's write happens in parallel if not it's again frets has to wait in a queue and finally last part of hardware which I want to discuss is network network is network should be is for MySQL is important part and should be as fast as possible and you put need to pay attention for these free items this is speed of the line and pay also attention for RTT which is pin command prints for you about bandwidth that means that's like how much data you can send and receive at the same time and also stability and MySQL uses TCPIP protocol but in case if network is not stable it has to resubmit packages and to resubmit packages it's take time and it increases time for your clients to receive answers on the internet connection it's possible to run MySQL so what will happen? clients can't work they will just connect they will just receive data not as fast as on local network as soon as replica may delay it's actually I brought here will delay but actually may delay because well in case if it's source server has active right set so Synchronous replica will sort on the delay and Synchronous cluster like Percon X3DB cluster and also solution available since MySQL 5.7 is in the DB cluster they just would not be functional because with default options which is Synchronous cluster Synchronous cluster is one node receives and updates and it's a commit time before returning result to client it distributes updates to all other nodes receives answers and then only return result to client if it's done on internet connection on remote data centers that's very slow defaults are not supposed for date so you will all this cluster will be all the time partitioned but it's possible to change defaults but in this case your application will have very slow response time with this adjusted configuration so this is big node to use this I unfortunately see this in production environment but only watch I can say people who do it just stop doing it How MySQL uses network? It's uses for communication between server and client and actually that's everything serving client it's a regular client which like application and it's MySQL server it's a replication connection IO thread and traffic between the Synchronous node it also communication as server and client just in case of replication it plays different roles and while we spoke about how which hardware MySQL should use and how it should use so how to configure MySQL to get use of this nice hardware so watch can be configured it could be configured server options and component options like if you remember MySQL has loaded architecture so components include storage engines and main is in ADB that's default storage engines, multi-purpose it also has could be plugins like audit plugin for example it also could be server parts which are not plugable like optimizer or binary login on the source server scope of configuration it's could be global this is parameters necessary for all server processes such as location of data directory like shared buffers like in ADB buffer pool size and like this session is control connection specific parameters and most of operation specific options I also have session scope here it's working core code you may use it now and once my talk is done I believe my slides will be available on the conference website and certainly will be available on my slideshare and you can click this link and this is working lift and I recommend to you to bookmark this all MySQL options in one page so you can search for one which is interesting for you how to change MySQL variables you can do it online by running like set command if you omit any thing in square brackets it would set session variable if you use global it will use global variable and all new connections if it's also variable association variables all new connections will use new value and existing session will use old value but if it's like variable which affect all the session it will be changed immediately and science version 8.0 you may also use set persist command which not only change global variable but also store it in automatically generated configuration file so on the restart it will be used same new value you may also use command line option when start MySQL server and in the configuration file which is either in the default location that's different from different systems again link to the user manual or specified by option defaults file and in format first it's group name and then variable with value for px.cona.extraDB cluster operator configuration you can change it either in CR.yaml file just search for specifics for px.extraDB cluster and change configuration or you can use config map in this case create custom configuration file then create config map and restart px.extraDB cluster if you are using px.extraDB cluster note it can have to configure for you in adb buffer pool size and max connections but all other options you need to configure yourself and of course it will configure like data derelocation and things like this but other performance options they are just default of MySQL at least for now who can change variables dynamically global variables and few sessions variables could be used changing the user with special privilege called super in version 8.0 super was split into multiple privileges and now it needs to be system variables admin but also in 8.0 you can use super session options can change anybody 8.0 has restricted privileges there are not many like binary log format binary logging and something like this this could require privileges system variables admin and session variables admin not restricted options options could be changed by anybody it not that there is no limit and it's easy to change like if user doesn't use it wisely they could change it to very high value that you should be very careful when grant people access to MySQL server when buffers then are speaking about memory buffers it's also important to understand why when they are allocated it's force which change control behavior of whole server they allocated a server start up and can start with low values and then grow connection options for every connection when connection options and operation specific for every operation when needed but they could be allocated more than once like if you have joined buffers size it could be allocated multiple times and kill actually maybe even your server so which are important options first is like most popular storage engine it's in ADB in ADB buffer pool size that we talk a little bit about it ideally it should hold active data set so in ADB will perform all work in memory that's in ADB log file size should hold changes like it's approximate it's actually approximation it could be larger but at least it should hold changes for an hour because how it works then MySQL when in ADB like receives updates it changes data if it's possible if in ADB buffer pool size and writes updates sequentially to in ADB log file size that's very fast operation and once it has it's less busy it ground free it takes data from buffer pool and flashes it to tables in case if in ADB log file size file is small sometimes they are written in circle of fashion and then that's limit is reached in ADB starts aggressive flashing because there is no space to write to log file and in this case all your transactions are stopped and if in ADB log file is too small it's this situation could happen faster if it's set proper size in ADB has enough time to flash all changes to the disk and here which is a good way to find out if your log file size is proper size it use Percona product called Percona monitoring head management it's only open source monitoring system for MySQL and I am afraid for all databases it also supports PostgreSQL and MongoDB and for log usage you may see on this picture red line is total size of the log and orange bars is how much data was written during the hour and you see orange bars are much higher than red line so this is not good option and in ADB log file is set to low on this picture that's in ADB log file set to proper size to good size because all orange bars are below red line so this is very good visual way to find out if your log file size is set properly in ADB thread concurrency is either zero it's default and if you notice situation then your CPU usage is high but performance is low it may be because in ADB creates more threads than number of CPU cores and Linux kernel has to schedule job between this CPU cores in this case it makes sense to limit up to number of CPU cores this is actually how much parallel threads in ADB can run concurrently in ADB our capacity is with which speed in ADB will write to disk its default is too small for nowadays because it's set for spinning disk so you can set it up to number of IOPS your disk can handle it's not exact number because it also depends on how much data you write and some other factors should be tested but that's rule of thumb it's like this very good explanation actually is official manual and another option is in ADB flash method recommended option is most cases is o-direct that means in ADB writes in flash time it writes to disk and not store it in cache it's safest option most times it's fastest option also but test on your file system because some file systems do not work good like SNSUN they do not work good with o-direct so test it and this is why it's not default flash method another option which can affect performance it's synchronization options but this option can compromise durability so use it like better to change it on read-only replica or like if you can lose data and I will show you how and what's the change first it's default value about in ADB flash log at TRX commit is 1 that means what it says it's flushes read the log files it's where flushes at each transaction commit so that's for full ACID compliance and you would not lose any transactions in case of power failure or server operation system restart or also not graceful restart of MySQL in case if it's set to 2 logs read at each commit and flush it per seconds but you need to remember so it's one second it's UMSC that's very short period of time but MySQL can handle up to 1 million inserts per seconds so that's in source it could be a transaction in case of after commit is used so this is not like you when you set it to 2 you need to understand what you are doing but it's safe with synchronous clusters because in this case when you are doing commit commit also another nodes and so that's like it's unlikely all three machines will die when before flush happens 0 it's also less strict with 2 it's logs are reading and flush at once per second and what is important is once per second is not guaranteed for 0 and 2 so it's sometimes it could be faster flashing but sometimes it could be delayed and so you will lose not just 1 million inserts but more inserts another option is syncing log that's synchronization of binary log changes default is 1 that's again it's a transaction commit binary log get synced to file system in this case it's no transaction lost but it may imply performance penalty like up to 10% of speed for high concurrent environments so that's to relax it you may use option 0 when synchronization handled by system but this option you have no control how many transactions you can lose or you may see set it to N that's after N binary log group commits it's groups of transactions which could be flushed together which were executed together in this case of power of operating system crash in this case we are not flushed this not flushed transaction could be lost from the binary log you may only rely on engine but it would be really hard to restart so you need to understand which number you can set here but you may set it to some if you can lose some number of transaction you may set this to positive value these options they are free almost free that's table open cache that's a number of open tables of all frids it's actually file handle for a table so that's increase them when you are syncing the connection in process these are waiting for opening table value of opening tables larger than open tables since it's a file descriptor it's just 4 kilobytes sorry it's not 4 kilobytes it's even less it doesn't use as much resources and resources and you may see it's very high table definition cache is size of the cache for table definitions you may increase then value of global status variable opening table definitions is larger than open table definitions and it should be less than table open cache but it's safe to set it high and you may also increase operating system open files limit if needed so MySQL can handle so many open files and finally query tuning on the server side so like I told you that query is hard of your application because you communicate with database using queries even if you are using NoSQL and MySQL supports NoSQL interface but they are still queries they are not SQL queries but still queries data which you request matters so if you request one million rows do not expect the query would work as fast as one if you request one row even if this one million rows goes into temporary table so query execution workflow is a query send it goes to connection pool optimizer creates a tree which is sustainable by optimizer and optimizer created a plan how it would be executed and storage engine to execute the query you may not be able to change the flow query it's because it selects for example just selects a lot of data and this is data you need or maybe it badly written like left join and stuff inner join like retrieving large results and discarding it's not effective SQL at least for particular MySQL version but if you do not have access to the application it cannot rewrite it you have to rewrite too many parts of the application you still have to deal with it but we still can't improve performance and let's see what we can do and first thing which to do is indexes to show you the difference which indexes are let's see a query which selects name from users which selects all the users and select name from the users where ID equal to we actually need only this record but this query selects same rows in the table after index added it selects just one query so what is the index? index exactly like in address book sorted order of unique values in the table which points to if table has not unique index it points to tables data MySQL supports different types of indexes but what is important you need to understand that well kind of in the DB supports B3 we are able to speak about B3 and they left part ordered it so how to create an index so use just create index command for single column you can also create on multiple column and you can also use alter table comma alter table add index you can specify index name and you can write so when MySQL can use indexes it can use indexes to results very conditions so like if column is equal to value and column is could be in set of values and command is similar like like is value and on the right side could be anything but since MySQL used B3 or B3 kind of compatible indexes this query would not use index because it shows on the left part and indexes are sorted from the left to right same in case if multiple multiple column indexes MySQL will use indexes where left part equal value or right part like this it would use indexes with left part equal value or right part part equal something else but would not use indexes for the last row because it has to resolve this value first for joints it also will use indexes for this expression then this is same as this query it's just written differently from previous example you may understand that index could be used for group buy it would again you can use indexes for group buy can use multiple columns indexes if group buy left part first but would not use if group it by right part first and would not group buy in different indexes same applies for order buy it could be sorted by an index by left part first and right part second but would not use indexes in other cases it's in 8.0 in 8.5.7 or before order buy left part dischanging it could not be used by 8.0 supports indexes which could be created with dischanging k-word so in this case for this query it also will use indexes for expressions it will use index if built in deterministic expression are used it's same as which is returned same value for same argument like floor use for non deterministic expression like such as run it would not be used for storage functions in UDFs but my school supports generated columns and if you need to use them and still want your query perform fast you can use generated columns so how and when add indexes first identify which queries do not indexes use indexes for example use performance schema status variable it also available information and for this variable name of this status variable it shows some problem with the query I would not explain in details what all this means but it shows problem of the query and these queries are candidates for optimization handlers is actually shows which actual work done for storage engine and handler read R&D next if it's big that means query doesn't use indexes so that's probably also candidate for optimization performance schema when statements will show you statements which which are not effective it's again like for status variable I selected here all values which has shows problem and one important fund if row examine is much greater this row send and you're like requesting small amount of rows this is symptom of query optimization issue in slow query log you may also use this metrics you may also use in standard slow query log in Percona server NPT query digest which could show problematic queries PMM also you can use like no index used and you may use this column and search for for badly optimized queries To add indexes analyze if adding an index will help it's better to test it on the test server and if query improves just add it then add the index but note that add index is expensive operations so test first and on production use PT online schema change which allows to add index without interrupting your other other operations another option is to use histogram statistics which available science version 8.0 it's collected and used by the optimizer it could be examined in information schema it indexes for example they are collected and used by storage engine it affects execution plan but not access it can change like this query select from A join B can change to select from B join A but cannot change like some like to use different indexes for example it's more details it's a detailed webinar on histogram statistics and how to use them and if you are curious you may check and you may want to watch to show you quick difference between indexes so indexes like we have table with different values number of data and index this when optimizer discusses communicates with storage engine which index needs to be used and used value cardinality and it's cardinality is the same for all rows for all values no matter how how much data each value has so this could be for example has multiple indexes it could be used like query can decide to use wrong index for example for histograms it shows like for the same data it shows difference between each bucket so this is exactly like what is the difference between data in this table and could be make more wise more detailed decision so create a histogram when data distribution is far from uniform it's query accesses to more tables and indexes cannot be used another option is on the server size it's an optimizer configuration I would not explain what it means but you may experiment, you may search box database and you may search which you may find out which optimization options affect your query so how to work with it it's turn on and off particular optimization it's tested it could be not helpful because because some optimization could be not helpful for queries specially tuned for previous versions then turn off try set optimizer switch turn off select, explain select and compare which with default value and and again if it's help, implement and queries it's better to use this syntax because default value works for most of the queries and this tuning needed only for queries which are not good for optimization and final part is also increase size for optimizer temporary objects such as temporary tables you may also change default temporary storage engine to use one which better works for your queries but usually it's not needed buffers for query execution that's joint buffer size it's for joint conditions not using indexes read buffer size is for question indexes for order buy for question results of nested queries and pull concert into partitions this one is for multi-range read optimization this is for select into out file or down file search session and this is for sort operation order buy and group buy but be careful change this only at the session level because if changing it globally it may lead to increase memory usage which could be used more wisely for different operations to conclude that's hardware more memory is better disk use modern disk faster is better for more course is better for concurrency for network use high speed possible these are hot options for NADP and for server it's again slides will be available after the conference and you can download and you can use them and these are query performance options which you can explore for for tuning your queries while you cannot actually change the SQL more information there are first two links are links to the webinar they are available in Percono sites about how to troubleshoot it's not we are talking about how to get best of of your hardware and configuration but webinars about how to troubleshoot if you are seeing some issues or some problems with that MySQL query tuning for the ops it's a similar talk but about only query tuning it has more details on how to tune queries it's again for not MySQL professionals Percono monitoring head management is linked to the graphical software which I use it for illustration and final link is Percono Kubernetes operators these are my contact information I will also upload slides to slide shareer and we'll announce everything on Twitter. Thank you.


Australia is an amazing place to live and to work. As long as you come with your drive, your motivation, your attitude, you can have an impact. If you come now, you can expect accelerated career progression, you can expect good offers because there's very, very high demand and this demand is increasing. Jobs are increasing. The opportunity in Australia is growing. Not only can you come to work and build a secure career and business but you can also go into a community and have fun outside of work as well. I think coming to Australia has been one of the best decisions that I've ever made. I significantly grew my career and my experience. You get to live in a country that's diverse and safe, great in ability. It really doesn't get better than that.


Alright, welcome everyone to the 2012 Conference of the Mormon Transhumanist Association.  This morning as I was driving in to the conference with a friend, Leonard Reel, who's here visiting with us from Canada, like several others of you here, he traveled a long way to be with us. We were discussing what the purpose of this conference is. And one of the things that he said right away was the thing that was already on my mind, and that is that the purpose of this conference is to bring together two things that are in many person's minds very opposed to each other. And those things are science and religion, or perhaps technology and spirituality. People see these things, unfortunately, as being diametrically opposed to each other. And what the Mormon Transhumanist Association is about, and what this conference today is about, is about bringing together these things that so many people think are opposed and showing that not only are they compatible, but they actually build each other up, that they're made for each other even, that spirituality and technology require each other, that science and religion require each other, to be in their best manifestation, they're made, they're good for each other. That's what we're talking about today. 150 years ago, more than 150 years ago, Joseph Smith was organizing what he called the School of the Prophets. And in Doctrine and Covenants 88, we read some of the words he wrote when talking about the organization of the School of the Prophets.  Ye, seek ye out of the best books, words of wisdom, seek learning, even by study, and also by faith. Today we are bringing together both study and faith, both wisdom and inspiration. That's what the Mormon Transhumanist Association is about, and that's what all of us will be speaking about today.


For us, it's very important to connect with the people living in India. We've done a lot of research to understand what is the life at home, what are your needs and dreams about your home. And then we looked at what is very important for IKEA, matched with what's important for India. So that we call building on strength. And we are focusing on the love for home, love for children, love for food. But also this importance of the shared values. We have the same values more than IKEA and India. And it's about togetherness, it's about caring, it's about really being clear and simple what you want to achieve in society. And we have a clear mission to support people to have a brighter everyday life at home, with our offer of affordable home furnishing solutions.


My name is Jean Dede and I work with the Norwegian Refugee Council in the Kakuma office in Kenya. I am also a member of the global HLP, Air of Responsibility, and I joined the Landa community, the online community so that I can learn more from the different contexts and to also get further knowledge as well as share the Kakuma and Kenya context having worked both in the dub in Kakuma. I am looking for a treat.


Now we're ready to take a look at phase shift. As a reminder, here's our general equation for simple harmonic motion, abbreviated SHM. X, again, is the position, and it's a function of the time variable. There's three problem-specific constants in this problem, the amplitude, the angular frequency, and the phase. And phase is what we're taking a look at right now. So for phase shift, what is that? Well, it answers the question, where does the oscillation start in the cycle? And it's always going to be between zero and two pi radians. Now if the phase is equal to zero radians, that means that we're starting at our maximum displacement. That's where we say the standard cycle would start. Graphically, here's a cosine wave, and notice that at t equals zero, it's at its maximum position. So that means this one does have a phase shift of phi equals zero radians. Now I'm going to put another curve up there, which has a different phase shift. I'm still showing the old phi equals zero curve in red here, but now I've got my blue curve showing that at time equals zero, the position is not at a maximum. So that difference between where I'm at at time equals zero and where I would have gotten to that point is our phase shift. It's horizontal on the graph here. It's often measured up here at the top of the cycle or down here at the bottom of the cycle. But it's actually the same little shift no matter where you are on it. Now for this particular phase shift, 0.785 radians, that's actually equal to one-eighth of a cycle. Remember again, one cycle is two pi radians. So what does this mean is if I were to look at one cycle, say going from the minimum to the minimum, the phase shift is one-eighth of that length. So I've shifted by one-eighth of the total length of a cycle. Now here's a couple of special phase shifts. For this particular curve, my phase shift is 1.57 radians, or one-quarter of a cycle. And on this particular curve, my phase shift is 3.4 radians, half a cycle. You probably recognized right away that my 3.4 is pi. Since one cycle is two pi radians, half a cycle is pi radians. Which means this quarter of a cycle is actually pi over two. And what about the sign of the phase shift? By that I mean I could have a positive phase shift, or I could have a negative phase shift. Well that's what two graphs would look like. Notice on the positive phase shift, my peak is always a little bit earlier than I would expect with a phi equals 0 curve. And for a negative phase shift, my peak is always just a little bit late. So that shows me what my phase shift is really doing to the curve. So that's our basic introduction to phase shift for simple harmonic motion.