Zinedine Zidane has decided to step down as Real Madrid coach with immediate effect. Newspapers reported that the Frenchman has called time on his second spell in charge of the La Liga club, who has led to two league titles and three Champions League victories since 2015. Zidane has told club directors and the first team squad of his decision, which comes after his side narrowly lost out on the league title to city rivals at the Atlético Madrid on Saturday. Zidane now finished second in the standings, two points behind Atlético and were knocked out of the Champions League at the semi-final stage and the Copa del Rey in the round of 32 to end the season without a trophy for the first time in 11 years.


Are you having trouble staying focused on your daily tasks, and that's holding you back from accomplishing your goals? Today, I want to give you two ways that I stay laser focused on my actions that I know is really getting me to that next level. What's up guys? Ricky Krooth here from zerododiamond.com, the first completely free real estate coaching program. I hope you are having a really good day. I had a message from one of my coaching students. I wanted to read it to you here, and I don't want to give him an answer right here in this video. If you have any questions or any problems or anything I can help you with, just shoot me a message on Instagram at RickyKrooth. I answer all my DMs and I'll be sure to either respond or make a video on it. So one of my coaching students sent me a message here and says, hope you're doing well Ricky. I was wondering if you could possibly do a video about focusing on the present moment, AKA giving 100% of your attention to the task at hand. This seems to be a common thread throughout all your videos.  In different videos, I've seen you discussing the importance of giving 100% of your attention to your work while you're working, to your health while you're working out, and to your leisure while you're kite surfing, and to your family when it's family time. One of my friends told me how impressed he was that you gave him 100% of your attention when the two of you once had a chance to have lunch together. Even though you probably had a million other things going on. Previously, you have also discussed how we as real estate agents shouldn't worry about all the bad stuff that could happen during a transaction but almost never does happen. I believe that it's hard for a person to worry if they're staying in the present moment. I've seen also this quality in other highly successful people so I would really love your take on it. If you have already talked about this in the past or if it just doesn't sound like a very exciting topic, no worries, I just thought I would ask. Thank you so much for reading my friend. Absolutely, it sounds like an interesting topic and I'm really excited to make this video because you're absolutely right. This is something I talk about so much in all kinds of other videos and I actually talk about this being my secret to success in a lot of videos, especially my time management video. I made a video a couple of weeks ago, time management 101. I'll link it at the end of this video and I talk about the fact that the reason I get so much done is because I don't worry about what I have in front of me, what is in process, what is pending, right? And I very quickly just let the process take care of that while I continue on looking for more people to help or more tasks to complete or more projects to tackle. So I'm always looking for that next, that next, that next. Once I get one in progress, then I'm done, right? I'm gonna let the process take care of that. I talk about 90% of the things that we worry about never happen so why should you worry about it at all? The 5% or 10% of the things that you could worry about that do happen, you can worry about those when they happen. So why don't we spend that energy and that time and that mental capacity focusing on the future and things that we can get done right now to create progress, right? And produce, produce, produce. So I'm a big advocate on not worrying about anything, being very calm, cool and collected in all situations and only worrying about things when they arise and then quickly jumping on those problems and taking care of them immediately before they get big. I also talk a lot about when I'm at work, I'm really focused on work, laser focused and when I'm done with work, I completely shut that part of my brain off and then I turn the family time of my brain on. If I'm at the gym, I'm totally focused on the gym and what I'm trying to do right there at the gym, I have very little distractions. I wouldn't say zero distractions. I still have my phone, it's still dingin', things are still happening but I've become very, very good at not letting distractions get in my way of the overall goal of what I'm trying to accomplish right then. This is something I've been really good at from day one. From the time I was a little kid, I was really focused on whatever I was doing at the time and I would work on it, work on it, work on it when I wanted to play guitar. I played guitar for hours and hours and hours until I became somewhat decent when I wanted to play basketball. I practiced for hours and hours and hours for months, for months and years until I could shoot really well. Same thing with football or working out or real estate and now coaching and making YouTube videos. So I'm really a laser focused kind of person. Whatever I'm dialed in at the time is what I have going on. So I want to tell you two ways that I really kind of keep my focus and stay on target, okay? Stay on the course. The first way that I do it is I think of whatever I'm doing at the time as a form of therapy, if you will. It brings me happiness when I'm productive and when I'm in the middle of a project or a task at hand, being really focused on that task gives me a sense of therapy. It gives me a sense of escape, right? These tasks are an escape for me away from possible other problems. When I went through bad times in my life, I've been through some really tough times. I've had really close friends die. I've had drug and alcohol problems. I've had all kinds of different things happen. Financial problems, everything. And whenever I went through a rough time, I used my work. I used real estate or roofing houses or working in an oil rig, whatever I was doing at the time. I used it as an escape from those problems. And a form of therapy. And it does two things for me that's really productive, really positive, and that is it keeps my mind off whatever bad things are happening at the time and it creates a situation where I'm super productive and I'm making things happen. So two really positive things comes out of that when you use your task at hand as a form of therapy, and when you produce and you're super productive, you become successful and now you're providing for your family on a whole other level. And so that's very, very important to me is to provide for my family and friends. If somebody needs something, I'm gonna be there. And the reason I can take off to go help friends move furniture or give somebody $200 for groceries is because I work hard enough to be in the position to take off or to give them a little bit of money or whatever the case may be. So I'm working hard to be able to provide for all those around me and I feel it's a real obligation and responsibility to do so. So I feel like I need to focus in on these tasks, okay? But the way that I do it is I use it as a form of therapy that makes me happy because I know I was productive. The second way that I stay super focused, laser focused on whatever I'm doing is I have a big Y. I always have a big Y going on in my life and that big Y changes. It's always changing. It's never the same. People could say I have this big Y and that's all it's gonna be for 10, 20 years. It's not true. You may have one for 10 to 20 years. I'm not saying you won't. You could have one for 50 years. I'm not saying that you won't but I'm saying mine has changed over the years. It's always something different. I can't really say what the timeframe is. It's never the same timeframe but right now, at this point in my life, it's literally to reduce the failure rate in the real estate industry. That makes me jump out of bed. I jump out of bed at 4.30 and I start working on my coaching business. I upload this YouTube video. I send out an email to all my coaching students to alert them that the video is there so they can watch it before they go to work and I'm hoping that that inspires them to have a really good day and super productive day and really crush it and achieve all their goals that they have for that day. You have to have a big Y.  So I know that my day-to-day tasks and activities are the things that's gonna get me to that goal and if I don't complete the tasks, I know I'm not gonna get there. It's really black and white. It's really that simple. So I have two things, two ways that I stay laser focused on everything that I do. The first way is I use my work as therapy, a form of therapy that makes me happy when I'm accomplishing things and I'm super productive. Okay, and it does so much for me because it helps me mentally if I have bad things going on and it makes me continue to be more and more productive. The second way is that I always have a big Y in place that's always driving me and one day I may wake up and decide, you know, this isn't motivating me the way it used to, right? This big Y, just something about it is just isn't motivating me the way it used to. I need to think of something else and that's really how I got into coaching. The big Y of wanting to make a million dollars in a year, I guess that was my big Y with real estate is I wanted to make a million dollars in a year so that I could say that I did it and provide for my family, like I said, and just be in position to help people on a financial level, but when I hit it, then it was over, that was it. Now what am I gonna do?  I can't say that it'll be that same big Y in five years, in 10 years, in 20 years, I don't know but I feel like regardless if it continues to be my number one priority and number one big Y, it's always gonna be a big reason why I'm doing the things that I'm doing and I will continue on this mission. When I finally breathe my last breath, I will look back and say, I reduced the failure rate in the real estate industry and I helped millions of real estate agents over my lifetime achieve success when they may not have otherwise. So I hope this video helps you realize how I stay so laser focused on everything that I do and gives you some kind of direction to figure out how to be laser focused on your daily tasks. If it did help you all, please hit that like button and shoot me a comment, let me know what you think. Every little comment helps and like I said in the beginning, if there's a certain video you guys would like me to make, please just comment below and let me know about that. Let me know if you guys have any questions, anything in the world I can do for you. We'll talk to you soon.


So perfect blue skies, almost no wind, beautiful sunshine. These are indeed conditions for the beautiful game. The backdrop here, picturesque idyllic. No doubt one of the best days of the footballing calendar, and it has added to a really jovial happy mood in the stands, helping to raise the level of sound by more than a few decibels. Shirt sleeve order, very much the dress code. Little question, but this is one of the most striking structures in all of sport, the Allianz Serena. The mouthwatering game, this between two very high-quality sides, a treat for everybody here. Chance! Good run, lovely take, but that is where it stopped. Well, there are a few pockets of space that are being exploited, and they need filling, and fast. Forward it goes. Mouketsia, Kolasinac, David-Louise. Just to point out, Peter, that the full-backs are quite high. And what do they try to achieve? Well, it's obviously a move to push the opposition wide men back and give them more to think about. So, who's he picking out? And it's Kolasinac. That wasn't too dissimilar to the previous attempt. The fifth spotter was Gasly Defent. Hostel take a two-goal lead, and things should be comfortable from here on in. Well, at one nil, this contest was... Ozil! Oh, just lacked a decent finish. Yeah, maybe the circumstances are beginning to heap on the pressure because they're trying to force it. Kolasinac skips it away, just deflected over the goal line for a corner. They've played it short. He's in, surely. Hector Pelleri, real chance! It's the shot on. It's Ozil. And the shot! He is there to heap it away.


I'm bored. Yeah, and there's nothing good on TV. Hey guys, you know what we should watch? What? The Burlington City Council. That sounds like a great idea. But even though we work at a television station, none of us have cable. We don't need cable. We can watch. It's easy. After you have opened our YouTube app, search for CH17 Space TV. CH17 Space TV. And search. Our channel will be the first result. Go there and select either our local Burlington 317 stream or our full service area channel 17 stream. Ta-da!


Alright, thanks for staying with us. In case you did not know, today is International Teacher's Day and where's my video? I want to play one short video quickly. Yes, there's a video from Teni the Entertainer. If they can just quickly cue my video for me. Alright, so October 5th recognizes today as World Teacher's Day by the UNESCO and it started in 1994 with the aim of honoring the adoption of UNESCO ILO recognition. The theme of World Teacher's Day is the transformation of education begins with the teachers. Everybody that knows, know that. So teachers are, how do I put it? Teachers have the capacity to actually put you on the trajectory for growth and success, you know, very early in your life. They're very important. I remember my oldest son, the first teacher he ever had. I think when she went to a leave, he kept on crying nonstop. She was such an inspiration. She made him love everything about literacy, you know, everything about schoolwork, everything about what they called it in again. Don't forget the elementary level. They are older now, you know. Everything about math, English, at that level he fell in love with schoolwork because of Mrs. A. Gozway. I can never forget her name. She was such an amiable person, you know. And, you know, for every time we get the opportunity to celebrate teachers, we must tell them they are loved. And I really will, I really, I'm hoping and praying that we get to a Nigeria where it is not the people that are unable to pass Jam. That combining 10 YR results are the ones going to Teachers College. We are now getting people that have straight A's. We have people that have like, you know, 300 over 400 or 350 over 400 in Jam. They are the ones. Yes, and they are passionate, you know. We want the most brilliant minds to be in the educational space compared to what we have now. But what's your experience with your teachers quickly? So what you said about teachers discovering talent. So I take my reference from Beyoncé.  So teachers have their ability. And I feel like being a teacher is even a special grace because it takes a lot to become nurturing, especially for the smaller ones, the younger ones. You have to be very patient. And not everyone has that capacity. I've had very good experiences with my teachers when I was small. And I still remember some of their names and I still speak with some of them because they had so much good impact in who I am and, you know, my focus right now. I've had teachers that told me I was talented in this and some of the things I'm doing today are some of the things which some of these teachers have told me in the past. So I celebrate teachers today. We love you. How are you?  I mean, he was very strict, but he would flog me. When you get it right, he'll say, Hey, now you're my daughter. You know, stuff like that. So he really did. They were very my parents are very active, you know, in my school of my mom was for English, because she was also an English teacher as well. You know, so she's English homework. Dad is Mads homework, you know, so they played a huge role for that teaching experience for me.   Well, I've had really nice teachers over the years, you know, but there's a particular teacher I had. She used to take us English and tears in my secondary school, New Bridge, you know, Mrs.  Who is that walking down the, like she will, she will, she will punish.  So till tomorrow, if I hear people dragging their feet while walking, Eric's me. You know, I went to a Catholic boarding school and trust me, it did play a whole lot, you know, the whole how you have to be in line, how you have to do everything. Then refectory, there's timing and I was a laggard. Well, you know, I was, I was really small. So they just used to pity me. Everybody out of the hostel and you just see me with my shoes and everything. He's just like, what's wrong with finding, what exactly is your problem? And then all the seniors would like me, so I didn't really used to get punished. I just, you know, you know how you silently just escape from things. A lot of things. That's how I was, you know, that's really how I was. All right, Gloria, let's start with you. What did you find worse in the news? Today I found something rather interesting and historical. In the East Sea, sorry for those who are coming from Umuahia, if I don't pronounce it correctly. In the East Sea Niugutown of Amakama in Umuahia, South Luku government area of Abia State, it's a famous and ancient tree known as Amakama Wooden Cave. What makes Amakama Cave unusual is the fact that it has a huge hollow that can comfortably contain up to 20 adults. The gigantic size of the hollow is not so surprising as the tree is said to be as old as the ancient community of Amakama. It's a whole lot of write-up. It was gathered that the tree dates back to the era of slavery when it served as a refuge for persons who were fleeing from colonial and slave masters. So what caught my attention about this is it took me back when I was small, so I did not grow up in Nigeria. I grew up in Cameroon. So when I was small, my dad would bring us to Nigeria for holidays and we would go to the village. And when we go to the village, he would take us around showing us some of these ancient trees, the stream and all of that. So when I saw this, I felt like it was something interesting because it took me back to those times when I was small. Okay. We will visit the tree soon. How are you Mary? I have the Ethiopian Embassy reportedly banned visa on arrival for Nigerians. This is becoming disturbing. Turkey is doing it, Dubai has done it and now it's Ethiopia. I mean, what's our foreign affairs doing for the country because it's like having a green passport now is almost not yet. But wait, this is interesting because I was looking for flights and the cheapest I found was Ethiopian Airlines. Okay, it doesn't happen to you. You're transiting overnight. You don't need to have. So it's not affecting us? It's not affecting us. Let me just be checking. But it's sad. It's very sad. It's very disturbing. Foreign affairs, we need to look into it because at least we were comfortable that our African countries at least if UK and America are so hard to get, we started exploring all of that. Yes. So imagine if we can't go freely to these places again. Maybe Ghana itself will tell us. They will soon tell us. The way is going. We need visa. So I found this interesting. It says terrorists on Wednesday that's today released about 23 remaining victims of Caduna Train attack. If this is true, I am happy. It's really sad that it took this long. But the fact that they've been freed, I hear they were freed at 4 p.m. today. The secretary of the chief of defense staff action committee, Yusuf Usman confirmed their release. So I mean, thank God that they are safe back home with their families. I'm just praying and hoping that we do not see this kind of evil again. And really, that's all I can say. Alright, so let's go on a break when we come back from the break. We'll be discussing the impact of NGOs in nation building. Stay with us.


Hi, I'm Rajkumar Rao and I will see you guys in July in Delhi at Onthapunaw 2019. I'm very excited to be there.


Okay, let's get started Good afternoon everyone. I'm Nisha Tala Gala from Fusion IO and Rick invited me here today to talk to you about some of the things that we've been doing with New interfaces and non-volatile memory. So quick show of hands. How many people here were at Rick's talk this morning. Oh Excellent, so I'll try to sort of pick up where he left off And so one of the things that he talked about was you know, sort of the Arrival or pending arrival or the perpetually pending arrival of the new memories and you know Some of the sort of the crawl walk run kind of approaches that we can take To you know figuring out how to deal with them And so what I'm going to share with you today is some of the things that we've done at Fusion IO Which pretty much you know depending on what you are talking about fall into either the crawl the walk or the run category and Some of the software that we've written as part of the process that we are Planning on open sourcing or are in various stages of being open sourced so Essentially kind of the progression that we've gone down just to very you know at a very very high level of You know talking about starting with flash and then moving to some of the other new memories is You know People have started looking at flash as sort of a hierarchy between you know non-volatile memory and disk drives or As a straightforward replacement of a disk drive So there are quite a few big data centers now that are effectively going all flash So they have you know so flash has become cheap enough that there are people who are pulling out disk drives entirely From their data centers now So the the place where these API's and these new interfaces sort of come into the mix is when we talk about Using in one form or another flash and these new wall You know upcoming NVM's as forms of memory as well as sort of non-block forms of IO So You know the the devices that at least we make and most SSD vendors make today live You know present themselves to the world as simple block devices Regardless of how they're built internally and there's a variety of different ways that these devices are built internally So when we decided to create sort of new API's and new interfaces along with a bunch of other companies We broke these new interfaces down into effectively IO oriented models and Memory oriented models and the reason we did that is because in talking to sort of our customers and people who write Software that runs on our devices. It was fairly obvious that you know Every programmer either love to program the memory way or love to program the IO way And if they've been doing one of those for a really long time Then they really are just going to continue to do that and they are not really going to switch over to the other one And so, you know, it's sort of imperative that you have, you know Support people who think about the world as IO as in I send a request sometime later I get the response back and my program was sort of structured from the ground up to deal with that and Then the group of people who think ID reference a pointer and something happens and my program was structured from the ground up to look like that and so kind of with that in mind we sort of created effectively two kinds of What what you would call programming models or API's or interfaces Where some of them fall into the IO category where no matter what they do They essentially look like an IO model a request a response and then a set that you know fall into the memory category Such that regardless of what they do they fall into the you know I am map something or I you know malloc something and then I you know use pointers to reference it and then I Manipulate memory and certain things happen. So we actually kind of structured both of them and in terms of the way we sort of handle media is We put both of them to work on effectively a hierarchy of NVMs, so all of these or a majority of them work on flash They also work on a hierarchy of quote-unquote new NVM and flash so the The x the IO oriented interfaces that we've created sort of fall into a few categories Primarily the changes that we made to the IO interfaces are to add in addition to the existing block read and write kind of things Transactional updates so we have you know atomic rights for example, which we developed with HP and Rob who's here You know are one of the biggest you know changes that we made to sort of enhance the IO interface model We also have a set of interfaces that we've created that are slightly higher level There are more key value kind of get put kind of interfaces that are essentially You know provided by libraries that are that tie those interfaces very closely to flash and NVM behavior In the land of memory access what we did is we sort of divided the memory access into sort of a spectrum that ranges from purely volatile at one end which we call extended memory and purely non volatile byte addressable fine-grained updates at the other end which we call auto commit memory and Things that sort of sit in the middle where which are you know can be check pointed to persistence But most of the time are volatile and so this and this again is this is a This is a Programmer's view that is not necessarily the same as the hardware view So you can actually take any of these models and implement them on the other hardware They will just get cheaper and slower or you know more expensive and faster depending on how you look at it So just to kind of give you an idea of you know sort of how we think about this and I this is sort of should be You know a repeat of what was in the previous slide Iosemantics means you open a file descriptor you you know read you write you seek you close This is the standard stuff What is added to this is? Something like a vector Transactional right you can write multiple blocks atomically or you can open up a key value interface You can get and put you know immutable objects. You can do this in groups and so forth The Memory access pretty much the same way you would do before you know you allocate virtual memory You do with it the same things you would always do with it But you know you would be able to do this somewhat Performantly through a hierarchy of you know DRAM and flash in the land of purely non-volatile Memory as in purely non-volatile persistent memory, you know the the notion here is that you would allocate Persistent memory you would map it to your virtual address space You may call something like a checkpoint if you want to create a consistent version of it and You know have the ability to both name it as well as you know Remap it back to the same or a different virtual address upon restart And then what you do with it above and the terms of you know the data structures you build on top of it And so forth are sort of another layer that can be developed you know almost independently So so we've actually developed a good chunk of these things and we and the way we've sort of done this and this kind Of speaks to some of the things that Rick was mentioning is you know developing a lot of these new interfaces They're hard. You've got this sort of chicken and egg problem You know you've got the interface then you've got the app that doesn't exist You know without the app you don't have the interface without interface You don't have the app and then it goes on and on So what we've sort of done is we've kind of attacked the problem sort of at every possible angle So we developed some interfaces that were there so that applications could use it We modified some applications so that we could see how the interfaces could be used and Simultaneously we work through the standards bodies to you know put process You know proposals for the underlying commands that you know are the primitives You know through the standards process and so one of the things that we did you know one of the very first things So we did in this area was for atomics and so the primitive here is a fairly simple primitive the idea is that you can take a single IO and Executed atomically and this happens to be a very good fit for a flash device because flash devices are naturally Actually do this because of their you know You know write anywhere kind of nature and so they actually can be done very fast And so this particular one now we implemented it as part of our FTL And then we started out by Integrating it with the mysql database and this is basically where we see you know saw some of the initial sort of use cases for it so because it's implemented as You know part of the native capabilities of the non-volatile memory. It's almost as fast as a non-volatile memory But you know in terms of as almost as fast as just doing regular writes But because you are now making this capability Available to an application then the application can avoid some of the redundant writing that it does with logs and so forth And so at the application level it results in about half as much writing as you would do otherwise so This is an example of you know the mysql database through our file system translation layer that is doing atomic writes so what happens here is you know Prior to integration with atomic writes if you had you know fully acid compliant databases Then it was doing you know logging and multiple writing of data to you know Maintain acid compatibility if you turned off that multiple writing then you lost your transactional correctness But your performance got a lot larger When you use the native atomic IO capability you get about the same amount of performance as you would get in the Non-transactional case previously, but now you are fully transactionally safe at the same time so this is sort of an example of the you know the kind of You know benefits that you can get sort of by integrating the primitives kind of level so this particular case for example the two Major forks of mysql Maria DB and Percona both support the atomic primitive now So Maria DB supports it in the mainline code and Percona has published patches for it So so those who are sort of you know kind of an example of how we've sort of worked from the application to the you know FDL to the standards and this was mostly done through a kind of a somewhat iterative process involving the database and then us sort of you know Refining our work on it and then you know going back and forth that it took a little while But you know it gives an example of you know some of the ways that we've sort of done some application work that can be You know made available. I don't know Rob. If you want to comment on the standards for this You have your Well, yeah, and T10 the scuzzy standards body we've been standardizing Scuzzy commands to do atomic rights and atomic reads as well as a scatter gather. I know No, it's a new command called write atomic and read atomic And and also write commands called right scattered and read gathered That's implementation dependent. Yeah in our implementations. You can write up to four gigabytes. That's our current implementation Yes, or In our implementation a total vector size of four gigabytes. They don't have to be contiguous The way the T10 standards written in the device reports. It's a maximum size Yeah, so we support effectively a form of a capabilities query which you can query and it will tell you that Atomics is supported. Here's the maximum size is the maximum number of non-contiguous elements It will deal with stuff like that which is sort of a a softer interpretation of what you have in the standards so and then I think I have a link later in these slides to the Active proposals that these guys have the works so so the next sort of major area that I'll go over is Essentially sort of the plumbing exercise that's involved in getting some of these, you know APIs so one of the things is that when you have the API that surfaces from a device Practically speaking no one is going to use that API unless they can also have it with a file namespace and So because the file namespace is so closely tied in to all the data management that people do and so even if they have their Primary application is doing, you know fast access through some sort of a custom API Every primary application that's serious enough to do that has an ecosystem of secondary applications around it That are you know their backups their utilities their other, you know random maintenance things that are not going to change to go through the You know new APIs and so as a result sort of in as part of this kind of crawl walk run thing Even if you have API sort of surfaced you you know by say a device or a new kind of device You also need that same data to be accessed through standard APIs, you know File read write kind of things for the rest of these sort of the ecosystem surrounding that app and so one of the things that we built is what we call a native file system now So this one is an interesting thing in that it sort of serves two purposes for us It's a file system that is developed from the ground up to be optimized for non-volatile memory And so even if you don't use it with these you know for these API's It is also the fastest file system we have to date right now for accessing our devices Because it's almost as fast as a raw device It has the second benefit that if you want to use these API's then you can actually use them through a You know POSIX compliant file system and that in every other respect it will function as a regular file system And so this is a piece of code that We've developed internally it was its lead developer is Nick Piggan whom I think many of you might know and It's something that we are going to open source You know before the end of the year it plugs into the VFS layer the same as any other file system Primary difference is that it really supports, you know flash and other kinds of NVM devices So yeah, so a few notes on DirectFS It appears like any other file system in Linux you can run unmodified applications on it You know some of the people that are using it in trials right now are using it just for that They're not you know even using it for the primitives, but it also exposes the primitives now the fundamental difference between DirectFS and You know most of the other file systems out there is if you think about a file system You know it performs a few different functions. It provides a namespace. It typically does block management It has some kind of you know crash recovery, you know consistency kind of capability to it So DirectFS is different in that it actually only provides the namespace It sort of recognizes the fact that non-volatile memories do their own block Allocations and their own capacity management in a way that's very specific to that non-volatile memory So flash for example does wear leveling and things like that the new non-volatile memories do a whole other thing entirely and so what DirectFS does is it Uses an abstracted namespace that's based on virtual addresses and not physical addresses and It basically leverages the block management and the capacity management in the underlying NVM and adds only File names and directory hierarchies. It also relies upon capabilities like the atomics that essentially allow it to benefit from the fact that the underlying device is a persistent Consistent crash-safe device and therefore it actually has no journal of its own and so as a result it's actually an extremely thin layer of code and so the current DirectFS is a fully functional file system and Is I believe some of it in 8,000 and 9,000 lines of code so this gives you sort of a you know cartoonish view of What you know how DirectFS looks relative to some of the other FS's? So DirectFS maintains the metadata management. It has notions of iNodes has notions of virtual Extents you know keeps names directories permissions things like that But it does not do any block allocation. It doesn't do any mapping. It doesn't do any journaling You know it doesn't do any crash recovery It is fully it moves from consistent state to consistent state through the primitives available at the lower layer and Has something like four different primitives that it interacts with the underlying NVM as and those four primitives Or have all been you know stated publicly and we're in this in various stages of Introducing them to the come the standard communities the atomics is the most fundamental one so this is a Quick example of sort of some of the power performance that DirectFS gets and so the way to kind of think about it is the measure of DirectFS for IO oriented Applications is we want it to be as close to the raw device performance as possible and So what this chart has is you know IOPS or bandwidth in megabytes per second for random IO for you know various sizes and In each of the cases one of the bars is raw and the other bar is direct FS and we typically get you know anywhere from like say 2 to 5 percent within 2 to 5 percent of raw performance for DirectFS because of the You know very low code path and the very you know very very simple sort of nature of what it does What this chart has is essentially a slightly different thing, but for these primitives So if you have a primitive like atomic rights You can access that primitive through the raw device or you can access it through a direct FS file And what this shows is that the performance of the primitive is nearly identical Whether you get it through the raw device or through the file And so this you know helps people to sort of adopt the primitive because they get the file namespace for their regular data management tasks, and they don't you know cost it doesn't cost them a great deal in performance so another area that I I'll talk to very briefly about Is essentially the so the notion of like say Supporting KV kinds of APIs, you know for for typically common no sequel types of applications Many of the no sequel applications, you know, they are distributed, you know in their nature But inside each of the nodes support some form of a get-and-put kind of you know model and some of these models can be adapted fairly well to flash by recognizing sort of certain things So for example, one of the things that you can recognize is that many of the Many many of the KV stores frequently have a notion of key expiry about them So keys and information is only valid for a certain amount of time and after that it basically just expires and So if you when you combine the notion of that expiry with the underlying garbage collection of the flash You can actually get a lot of effectiveness so that it can essentially auto expire information and reduce the right amplification considerably and Those are sort of the kinds of things that you can you know combine with when you you know Try to understand sort of how common access patterns that are key key value store oriented can be mapped on to flash devices And so this is one of the things that you know we've done with some of our KV types of APIs and the way that we've structured this in particular is This lives pretty much entirely on top of the primitives the same primitives that drive direct FS And so this is effectively a user-level library that we also intend to open source that Sits on top of the same set of primitives so people don't necessarily have to use this But if they have a KV kind of application, you know, they can essentially put this on top of the previous You know primitives layer and use that to sort of adapt the underlying capabilities to this kind of an access model So these are some of the some performance numbers that compare sort of our KV implementation with in this case memcache DB and So I mean it's a it's a fairly straightforward thing, you know the memcache DB doesn't have an iterate Which is why the iterate chart doesn't have multiple lines, but the But in the other cases what you're really seeing here is that you know There are scaling limits in this particular Case of memcache DB that are you know essentially show up at larger number of threads and it doesn't allow it to get the full usage of the flash device and You know if you have something that's a little bit better Tune to what is going on underneath in the flash device itself. You can just scale a lot better So I mean this is specific to memcache DB It does it's not a general problem with KV stores, but we've also done some integration with Redis for example And we see some benefits when you know sort of integrating with something like Redis and Redis is a very Commonly used, you know KV library any questions on those before I move on Okay So going to some of the memory access Kind of so those are some of the previous things that I talked about were some of the IO oriented models that we've talked about and what we've developed Going to more of the memory oriented models As I mentioned earlier, you know, we've sort of chosen to divide our Memory-oriented work into something like three different areas One is what we call extended memory and extended memory is basically fast swap The idea is that there are people who want to use large amounts of DRAM But they can't afford to do it either because they're just aren't machines that can actually have that much DRAM in it Or if they want to have a large amount of DRAM They end up with very expensive dims or four socket machines or something that essentially makes it, you know Impractical and so what we want is to create Hierarchies of DRAM and flash that people use like virtual memory At the other end we have what we call auto commit memory Which is essentially support for physical persistent memory of the kind of things that we talked about this morning You know things that show up as physical memory, you know either on PCIe or on the memory bus and our byte addressable and byte level persistent and You know what we put in the middle, which we call checkpointed memory is the ability to take that same set of persistent memory API's but realize them through hierarchies of DRAM and flash Because you know to the point made this morning Everyone isn't going to have a persistent memory in their machine and so if you have you know API's that work for persistent memory You also need those API's to do something halfway intelligent when there is no persistent memory in the machine So the checkpointed memory is the ability to get the persistent memory API without the persistent memory through a hierarchy of DRAM and flash So the work that we've done for extended memory is Actually available on Github as a set of patches. They are patches to improve the performance of swap and they primarily kind of you know if you think about sort of swap No swap was never intended to be actively used as a hierarchy of DRAM and anything You know swap is a last resort You know kind of you know failure avoidance kind of thing And so it makes a bunch of decisions that are appropriate for hierarchies of DRAM and disk such as you know It takes a lot of time to figure out How what page should be replaced? You know when you move data between disk and DRAM and that is not the right decision when you're dealing with the hierarchy of DRAM and flash so a lot of this this is this is all public. It's available for people to test and And you know in at least now internal benchmarks It's shown a fairly dramatic improvement over what is there already and the key here is that if you want to you know Tier data between DRAM and flash the best you can do is to exhaust the performance of the flash device You can't do any better than that and so you know in the internal tests that we've done This these changes can keep up with something like three of our fastest devices ganged up together And so that's a you know that pushes the the swap subsystem, you know to a much better place than it currently is So so that's kind of that's sort of the stuff that we've done for For extended memory and from a programming model kind of perspective There is no programming model changes for extended memory. It is intended to be swap It's just swap running faster. So in every other respect. It's expected to behave like swap for the land of persistent memories the model that we've essentially Provided here the model that we've created so far and this stuff is sort of very early in its development is We see the memory as being part of a file system you know it is part of the file system namespace and so The the the way that we've actually done it so far is that you have a file system in this case It happens to be direct FS and that file system supports both flash and the persistent memory and hierarchies of DRAM and flash as ways to represent the file and you can use you know read and write access to the file but you can also use things like mMap and Extensions to mMap as ways to sort of access the file and you can create checkpoints of these persistent memories and those checkpoints present themselves as Direct FS files by another name and you can do anything you would do with them that you would do with any file So when you create a checkpoint it shows up as another direct FS file with the name of your choosing and so the idea is that it integrates with the existing storage namespace but is internally sort of able to comprehend this notion of You know multiple different media types some of it being flash and some of it being you know something that isn't flash and The amount of it that you have is going to really depend on You know what's available? So I mean there's a lot of there's a lot of expectation that these new memories will show up And they'll be the price of DRAM Chances are before they hit that point They will be more expensive than DRAM for a while and then they will become the price of DRAM And then if they're successful, they will become cheaper than DRAM And if they're really successful, they will become cheaper than flash so at any point in time there's going to be some amount of it and Sort of the approach that we've taken to this is we are not assuming a certain amount of it We're assuming that there will always be a hierarchy and depending upon how much is practical There'll be different usages, you know, there are things we can do with a very tiny amount of it There are things we can do with a medium amount and there are other things we can do with huge amounts of it So where we know so from a but from an architectural approach. We haven't assumed a certain amount We just assume they will always be it will always be part of a tier not you know a thing all to its own so a Couple of weeks ago or maybe three or four weeks ago We announced a sort of a undemonstrated integration of this Of a form of persistent memory with software and what we did here is we you know We have a small amount of persistent memory. That's essentially part of one of our devices It presents itself to the operating system as physical memory We essentially have a kernel module that takes ownership of this physical memory and Doles it out to any through an API to anyone who wants it So so effectively it shows up as a number of pages Those pages are then you know, they are accessible the physical memory So they are you know granular they support byte and cache line updates so Then what you know, so this kernel module that we have essentially owns this memory and Has and there is an API by which other kernel modules can get access to the memory pages And we have you know some mechanisms that you can recover the pages and things like that after they you know after a restart This these pages are consumed by direct FS You know as it needs as you know another physical sort of persistent resource that it can get access to and is surfaced up to applications as You know part of a direct FS file and then what we put on top of that is that through a set of user-level libraries we integrated this persistent memory with a MySQL database simulator called in OSIM and used it to accelerate the log writing of that database So a log writing is a one of the usages that you can do with a very small amount of persistent memory because the Because the access pattern is predictable So if you had you know highly random highly unpredictable Persistent memory you you know or workload pattern you actually need a lot of persistent memory Otherwise you'd be thrashing your crash like crazy But but when you're trying to accelerate a log you actually don't need all that much and so What you see here in this chart is three lines the the blue line is this particular Database simulator when it's running all on flash data on flash logs on flash the dock Blue or almost black line is when we actually turn off the logs So by turning off the logs, it's like how fast with this database run if it's logs were infinitely fast and Actually, sorry the yellow line is when we turn off the logs The dark blue or black line is when we put the logs on a persistent memory So you can see that you know by putting the logs on a persistent memory and a and database logs are typically the place where you Know the performance of a commit is driven because it's usually when you write to the log is when you commit the transaction And so when you take the logs and you accelerate them by putting them on a persistent memory then you get almost as much performance as if you turned off the logs entirely and Incidentally about twice as much as the performance of if you were logging to the flash itself so the underlying flash in all of these cases is the same and the logs basically Present themselves as direct FS files and to the rest of the you know ecosystem around the database They are as accessible as they always were they are effectively at a file And so your backup utilities see them as the same files that they were always seen them So what we see when we actually do this and we try to you know access an application from an application What we see when we try to access say a direct FS file that is backed by a persistent memory is You know the kind of the expected substantial latency reduction because you're not going through the IO stack anymore You know you're doing CPU store operations with you know certain operations to flush CPU caches and the like And the latency reductions are substantial The other interesting sort of thing is that you know if you are you know if you are doing small updates and you're going through you know a file system that is Forced to turn those small updates into four kilobyte writes. It ends up doing a lot of four kilobyte writes Whereas if those updates were doing their native sizes because they are now in cache line multiples It turns out that even when you destate to the flash You end up writing a lot less to the flash and it's a very very noticeable amount that you can write You know in terms of the savings of the rights to the flash themselves and Then you know Obviously, you know we get a lot better CPU overhead. So in this particular case, I think We're able to do something like somewhere in nine and ten million updates to this memory with one CPU core And that's simply because you're not over you know going through the stack and Yeah, and we already talked about sort of some of the direct FS kind of integration So what we have is a combination of sort of an extended m-map and a form of API So you can do an extended m-map that says I can m-map my file into persistent memory So the file is resident on flash But where previously would have mapped a flash resident thing into DRAM you now map it into persistent memory So this notion of you know being able to destage data back and forth is still present You know we also have some native more I oriented API is just because for applications that are doing logging for example Doing an I oriented API is much more friendly to them. They already know how to do that and then you know The point made earlier, you know, a lot of this is it's about doing tiering So the half the battle of dealing with you know Media medium amounts of persistent memory is knowing how to tear it in some areas. Yes, but Yes question is do we have any comparisons between the I oriented model and the memory oriented model We do but I'm trying to think of whether there's something I can say that's sort of meaningful I think I think the crux of it is that they're just two very different patterns and So for example when we're dealing with the persistent memories, you know The mem copies and other things that show up when you do the I oriented model show up as real overheads because you know, we're talking about a place where individual CPU cycles matter, right? So we can tell when something takes, you know Several hundred nanoseconds as opposed to 200 nanoseconds for example on the other hand You know when you're dealing with hierarchies of flash and DRAM for example One of the problems with the memory oriented model is that it is inherently synchronous So every thread can only have one IO outstanding Whereas the IO oriented model is lovely in that, you know Every thread if it uses a IO can have a large amount of IO's outstanding And so the IO oriented model can actually do better in that case So we do have the comparisons, but there's no clear win there on Either side I think you know So for the for some of the persistent memory stuff that we've done I mean we can we see a notable overhead for the IO oriented model Any other questions? Okay, so Just you know just sort of a reference for some of the open source stuff that we're doing and have done At the application level So some of the atomics integration with MariaDB is So MariaDB for those of you who don't know is a fork of the MySQL You know database and MySQL is by far the most popular open source database out there right now The MariaDB core, you know support for atomics is part of their mainline The Percona branch has support for atomics as part of a downloadable patch We have some other work, you know sort of in development at the database and some other areas that We are not announcing right now, but hopefully can once they are more mature The primitives that we've developed We intend to publish the interfaces to them We also intend to open source direct FS which is both a and it's also it's a standalone You know functional file system, but it's also a good example of how the primitives are consumed and re-exported So the primitives, you know sort of in code can be seen in the You know in the direct FS and then the various API libraries that sit in user space are all intended to be open sourced We have some Proposals in flight in SCSI Standards committee in T10 that Rob alluded to that we've been you know working on with our partners like HP and I've listed a couple of them here the ones for the atomic rights and for some of the Vectored forms of the atomic rights, and we're also You know an active member in the CIA NVM programming twig Yeah, so can you use direct FS on other non-volatile memory technologies? Or is it currently just fusion IO parts currently? It's just fusion IO, but this is what I was referring to sort of direct FS relies on something like four different primitives And we've got standards, you know proposals in the works for all of them You know I Ideally I would also like us to develop sort of a layer that helps direct FS run on top of others But we haven't we haven't announced such a thing yet. Yeah, I have one question So you said that the disadvantage of the non-volatile memory against the IO oriented model Is that you don't have a synchronous IO with the non-volatile memory? Yeah Oh, no, what I meant is that the sort of think of it the memory access model It's not about non-volatile memory. Oh, yeah, this model is inherently synchronous, but yes, is it really because you know the CPU does stuff like Prefetch of the data, you know, so so it does actually some prefetching Like reordering and so on so inherently CPU itself does something equivalent of a synchronous rights Yeah, and this is this is what sort of it comes down to and it's true not just for the CPU But also if you are doing tiering DRAM and flash right when you have the application only being able to ask for one thing at a time per thread Then you probably want to do some pre-fetch and some right behind if you want to get more parallelism Yeah, but CPUs already are doing this yeah with the ordinary memory. Yeah, so I think You know we have it's just the different scale. It's a different scale So so that the nvram is slower So like CPU would have to be much more aggressive in prefetching. Yeah And also it's you know, it depends on the IO pattern, right? Like for example with asynchronous IO I can fetch a bunch of completely unrelated Completely arbitrary things from the IO device Yeah, as prefetch is you know a smart Well, if you would be like the CPU, you know looks ahead into the code Yeah, and tries to guess what you would need and prefetch this from the memory. It's plausible. It's certainly plausible In theory, there shouldn't be such a it's quite it's certainly plausible Yeah, I don't think we've done enough work to know how effective it is right now for what we're doing But the theory can be applied Any other questions? So that's pretty much everything that I had The one other point I was going to make was there was a reference this morning about the block IO stack I don't know if Jens is here But I wanted to just add a pointer to the work that he has been doing To scale the block IO stack that was presented recently and you know, there's a link They basically they've been doing a whole bunch of stuff with multiple cues and have demonstrated something like pre-million IOPS out of the block IO stack We know and some something like 10 million with a very large number of cores, but there's a bunch of detail in there So and I'm sure he'll be here shortly to tell you much more than that That's pretty much everything I had any other questions. Thank you guys