WEBVTT 1 00:00:03.600 --> 00:00:13.769 William Cheng: Welcome to lecture 26 Colonel three, you have a little over two weeks to finish up of code from previous semester, don't look at them. Don't copy them as the good with the bad 2 00:00:14.160 --> 00:00:24.420 William Cheng: I should start early. If you want to have a chance to finish Colonel three grading guidelines on what will grade the colonel three grading Ghana is a little different from the other Colonel, so make sure you're familiar with that. 3 00:00:24.840 --> 00:00:34.800 William Cheng: And also for Colonel three, the greater is going to, you know, adjust DVD settings. So again, make sure that you look at that part of the grading guidelines. 4 00:00:35.700 --> 00:00:44.850 William Cheng: The recommended timeline for Colonel three I mentioned this last time by now P frame does see with the n equals zero and five Fs equal to one should be working. 5 00:00:45.390 --> 00:00:55.230 William Cheng: And you need to make sure BFS runs perfectly, you know, with system file system then for this week. You should be setting VM equals two, one and by the end of this weekend. 6 00:00:55.860 --> 00:01:03.450 William Cheng: You need to be able to build address space and run user been hello directly for any progress using colonel. Exactly. So again, this 7 00:01:04.110 --> 00:01:14.220 William Cheng: You know this timeline is pretty aggressive this Friday, I will talk a little bit about what the address space supposed to look like, and also 8 00:01:14.640 --> 00:01:23.640 William Cheng: You know, sort of explaining some of the current FAQ items so you can, you know, hopefully you can get. Hello, you know, to run as soon as possible. Yeah. 9 00:01:27.810 --> 00:01:35.400 William Cheng: You should read the colonel three FAQ there lots of information on it. The most important one. I mean, I've been pointed this out over and over again. 10 00:01:35.610 --> 00:01:42.840 William Cheng: Whenever you get a bad Colonel pays for you. First, you need to figure out exactly which machine instruction cause the colonel page ball. 11 00:01:43.320 --> 00:01:46.260 William Cheng: For Colonel one and two. You just need to find out which see statement. 12 00:01:46.560 --> 00:01:57.150 William Cheng: Cause the page file either is going to be your code or or going to be the, the, you know, part of the pristine kernel source, you need to pinpoint exactly which instruction which instruction cause the back page fall 13 00:01:57.540 --> 00:02:03.330 William Cheng: Okay. I mean, don't just, you know, say I gotta, you know, got a page file, what could be causing a while. There's all kinds of reasons. 14 00:02:03.870 --> 00:02:08.460 William Cheng: So if you just, you know, sort of, sort of go through the debugging stuff. I know exactly which machine destruction caused the 15 00:02:09.000 --> 00:02:20.850 William Cheng: Fall that will be much more useful and also for Colonel three, it is possible that you have a single ceased, a man and now inside the system and there are multiple places that you can actually cause page for 16 00:02:21.330 --> 00:02:29.040 William Cheng: So sometimes you have to actually go down to the machine instruction level to find out exactly which machine structuring that will that cost about about the back page Hall. 17 00:02:29.760 --> 00:02:38.640 William Cheng: Okay, so, so we can pinpoint exactly which machine instruction cause the page file. So this way debugging will be a lot easier. Right. So if you don't give that information, it will be much harder to debug. 18 00:02:39.510 --> 00:02:44.520 William Cheng: Now as I mentioned before, when you get your first legitimate page file, you should run the following key. 19 00:02:45.450 --> 00:02:50.670 William Cheng: You know, a colonel DVD command print out the address space and 20 00:02:51.090 --> 00:03:01.830 William Cheng: So one thing will be I sort of recommend is that you also should look at our dysfunction VM M mapping info. I mean this kernel command will run this function. So, this function walk down the address space and print out all that information. 21 00:03:02.250 --> 00:03:04.200 William Cheng: So you look at the code to see what is printing out 22 00:03:04.680 --> 00:03:15.060 William Cheng: Okay, so hopefully this will help you to understand when you try to build the address space. What is the address space supposed to look like. So again, what is supposed to look like is what I've been talking about in the in 23 00:03:15.540 --> 00:03:23.250 William Cheng: The lectures guys so, so anyways feel to share that information, you know, with your classmates. So again, I cannot tell you 24 00:03:23.730 --> 00:03:28.200 William Cheng: You know what code, right. So in this case, I can't really tell you what the output is supposed to look like. 25 00:03:28.800 --> 00:03:31.680 William Cheng: But again, feel free to discuss it, you know, in the class Google group. 26 00:03:32.220 --> 00:03:40.080 William Cheng: Okay, so in the kernel three FAQ. They also tell you what to do with PT map. So again, just do a stream search right you know command F control F. 27 00:03:40.530 --> 00:03:49.770 William Cheng: Look for PT underscore map to see what other related information. So this way, you know, and also in the handle page for function and the comment blog on top. 28 00:03:50.280 --> 00:03:55.920 William Cheng: It also mentioned this particular function. So in the end, you need to make sure that we call this function you give the right argument. 29 00:03:56.250 --> 00:04:01.050 William Cheng: Okay, otherwise things not going to work. Right. So again, you know, feel free to talk about in the classroom good group. Yeah. 30 00:04:01.650 --> 00:04:08.010 William Cheng: You also need to read about how to start a single step of the assembly code level because once in a while, you really have to do that at the assembly code level. 31 00:04:08.610 --> 00:04:14.790 William Cheng: So don't just do a sea level, you know, next, next nag or step, step, step. Sometimes it doesn't really work very well. 32 00:04:15.390 --> 00:04:22.920 William Cheng: So I think assembly level, you need to do and i and i for the next instruction or Si is sort of a stepping of injection 33 00:04:23.430 --> 00:04:33.360 William Cheng: OK. So again, these are the things that you have to try. You also need to switch the terminal mode to look at assembly code. So, so, so maybe I'll get this Friday, I will also show you 34 00:04:34.380 --> 00:04:49.320 William Cheng: sort of give you a hint of how to actually do that. Yeah, but you also need to know how to set conditional breakpoint because, you know, sometimes the same, you know, I guess some people say, I'm getting, you know, many, many baseball, you can actually, you know, you know, 35 00:04:50.370 --> 00:04:59.250 William Cheng: You know, set a breakpoint at the pace fall when the virtual address equal to something right so this way you can just run it until you the virtual address equal to certain number 36 00:04:59.580 --> 00:05:07.320 William Cheng: This way, you'll get a breakpoint. Right. So instead of doing it, you know, I mean, sometimes some virtual address, you're going to get like 2020 page fall before you eventually get there. 37 00:05:07.710 --> 00:05:12.930 William Cheng: So by using a conditional Great point. Things is going to be a lot, you know, it's going to save you save you a lot of time. 38 00:05:13.320 --> 00:05:19.950 William Cheng: There. So remember your current Osama you're running inside a CPU emulator qu so we run a things in 39 00:05:20.400 --> 00:05:27.060 William Cheng: Insecure em you things are very repeatable, sometimes you can even count on the virtual address to be the same one over and over again. 40 00:05:27.720 --> 00:05:32.910 William Cheng: Okay, so when you run your co your, you know, warm up assignment, you know, things are, you know, much more chaotic. 41 00:05:33.300 --> 00:05:38.160 William Cheng: The Colonel Simon things are actually a lot more predictable, because we're using a CPU emulator. 42 00:05:38.490 --> 00:05:47.850 William Cheng: Yeah, all right. Lots of stuff in Colonel three FAQ. You can also look at GDP assignment number three, he will introduce some of these Colonel assignment as some of these Colonel GDP commands to you. 43 00:05:48.270 --> 00:05:59.340 William Cheng: So yeah, you know, when you debug what we try to get your kernel three to work. It's pretty much, you know, hopeless. If you don't know how to use the debugger to debug the scope. Right. 44 00:06:01.080 --> 00:06:11.400 William Cheng: OK, so last time we finish, you know, the directory implementation and I guess. Today we're going to go to the next set of lecture slides. The next 45 00:06:12.210 --> 00:06:20.580 William Cheng: Slides were to look at multiple disk system. So what can be done if you lose your entire desktop, right. So we talked about Crash resiliency. We talk about 46 00:06:20.940 --> 00:06:29.430 William Cheng: You know what will. What will you lose power or, you know, will you a file system has bug or companies that has a bug, you get a crash. 47 00:06:29.940 --> 00:06:33.780 William Cheng: So in that case, the opposite. You know, we want to make sure that the file system is inconsistent state. 48 00:06:34.380 --> 00:06:46.200 William Cheng: Right. But what if you actually lose an entire desk. Okay. When you turn our power on you when you turn on power on your machine. What if the, you know, the, the, this has they all sort of scratched it is now the entire this become useless. 49 00:06:47.220 --> 00:06:52.860 William Cheng: Okay. I mean, these days, I guess where you're supposed to do is that you supposed have a backup data in the cloud and we mentioned that there is a 50 00:06:53.190 --> 00:06:58.410 William Cheng: Storage hierarchy, your actual data sitting on the cloud, you need to bring it closer to your CPU by bringing into the 51 00:06:58.740 --> 00:07:08.850 William Cheng: Into your hard drive and then you know your device driver walk, run into memory and then inside memory, you're going to use cash and all that kind of stuff there. But buddy are in the 52 00:07:09.360 --> 00:07:15.420 William Cheng: In case all your data is sitting on a hard drive and the hard drive is dead. So in this case you need you need to have a backup. Yeah. 53 00:07:16.110 --> 00:07:20.400 William Cheng: So, so the solution over here is to have, you know, multiple deaths. 54 00:07:20.640 --> 00:07:25.080 William Cheng: Right, so, so, so instead of having a one disc over here. Now you can actually have a second. This 55 00:07:25.260 --> 00:07:33.030 William Cheng: So the question is, how would you use the second this right. So one simple way to do it is to use a redundant this right. The first one over here is called the primary desk. 56 00:07:33.240 --> 00:07:40.620 William Cheng: And the second one over here is called the backup this right. So in this case, would you need to do that you just make sure that these two harddrive are exactly the same. 57 00:07:40.980 --> 00:07:48.210 William Cheng: Okay, so whatever data, you know that you have in the first is the second this at exactly the same this address you have exactly the same data. 58 00:07:48.630 --> 00:07:53.610 William Cheng: Okay, so this way. Well, one of the this side over here you can you can switch on to the second one, and then 59 00:07:54.360 --> 00:08:02.730 William Cheng: And then you start using a second desk. In the meantime, you go to Amazon, you go to frys get another desk and then repair it make a copy of it and then you can turn your system back on. 60 00:08:03.450 --> 00:08:15.780 William Cheng: That. So the question is, how do you really supposed to supposed to do this right, because we you know we want we want our system, not only to be reliable. We also want to make sure our system is available. So what's the 61 00:08:16.290 --> 00:08:21.960 William Cheng: Reliability and availability so reliable system, meaning that the system is, you know, all the components are up. 62 00:08:22.530 --> 00:08:30.060 William Cheng: Their availability, that is, that means that your system is not only up but you can also, you know, it's also, it's also you can actually 63 00:08:30.810 --> 00:08:40.710 William Cheng: Sort of perform to your expectation. So for example, if I have a system that's taking credit card numbers for my customers. I want my system continue to take credit card number, even if 64 00:08:41.070 --> 00:08:47.790 William Cheng: You know he he he really you know what i'm repairing the system. I mean, you know, sometimes when you're repairing the system, for example. 65 00:08:48.120 --> 00:08:53.670 William Cheng: If your car is broken, you're repairing your car when the car is being repair your car is actually useless. 66 00:08:54.330 --> 00:09:01.140 William Cheng: Okay, so even though all the components over there might be functioning, but as long as you know somebody else has the car while your car's not very useful. Now the similarly 67 00:09:01.380 --> 00:09:09.450 William Cheng: Every one of your component you know system can be up. But if you're in the middle of copying the data from one day to the other. Are you allowed to use it or you like to use the system. 68 00:09:10.350 --> 00:09:18.150 William Cheng: Right. So the question is, maybe you actually implement yourself correctly, this can be done. Otherwise, you know, your software your system becomes not available. 69 00:09:18.570 --> 00:09:26.340 William Cheng: Okay. So, therefore, we not only want to increase in reliability. So, the system is always up and running also want to make sure that the system is functioning as normal. 70 00:09:27.000 --> 00:09:36.210 William Cheng: That are as well. There's we'll talk about this with the multi this system, you know, what can you do. And also we have multiple disk over here that data can be spread across multiple drives 71 00:09:36.540 --> 00:09:39.930 William Cheng: Allowing parallel access. So if I were primarily so again. 72 00:09:40.620 --> 00:09:48.600 William Cheng: redraw this picture over here have a primary this right here I have a backup this over here. Okay, so when I perform a right to my desk right so typically 73 00:09:49.020 --> 00:09:54.150 William Cheng: You what it was before is that when I tried to write to my storage system. I need to write to one desk. 74 00:09:54.480 --> 00:10:04.500 William Cheng: Okay, so now I need to write to post this right because I need to make sure that these two days are exactly the same. So, therefore, my right operation is not finished until I finished writing data to both discs. 75 00:10:05.400 --> 00:10:12.960 William Cheng: Right, because if because, you know, if I write two only one days and I return right away. And so everything is OK and now get are gonna crash or the second is the data might be different. 76 00:10:13.560 --> 00:10:21.870 William Cheng: Okay, so therefore, right, it's going to be slow down a little bit. Because right now, every time when I write, I need to wait for two days to be finished before I can actually declare that right has been completed. 77 00:10:22.410 --> 00:10:31.140 William Cheng: Okay, what about reading. Okay, well, you try to read data from the desk. Well, since these two disc are exactly the same that it doesn't really matter. You know, which do you prefer. 78 00:10:31.530 --> 00:10:43.680 William Cheng: Right. So what happened is that, you know, you know, instead of sending all your real traffic to the primary this I can actually send 50% of my traffic to the parameters and the other 50% of the reach of a to the secondary desk. 79 00:10:44.100 --> 00:10:52.740 William Cheng: Or to the backup this right so in this guy. So, so what is the advantage of that was I remember, you know, if you have a colonel SLEEPING WITH THIS TO BE HERE WAITING TO GET TO THE DESK. 80 00:10:53.400 --> 00:10:58.200 William Cheng: You know the amount of time that you wait. It has a home you know how many external threats are in front of you. 81 00:10:58.650 --> 00:11:05.070 William Cheng: You, you only get to start reading the data from the days when all the colonel threat in front of you have finished doing their operations. 82 00:11:05.580 --> 00:11:15.390 William Cheng: Okay, so by splitting all these kernels, throw it into two Q's there 50% will stay right here and 50% will go to the other days now you're waiting on the the wait time is going to cut in half. 83 00:11:16.230 --> 00:11:23.340 William Cheng: OK. So again, this is what kind of wait time is this. This is the wait time that you wait for all the other Colonel 30 finish this way. Time is not that this access time 84 00:11:23.760 --> 00:11:27.150 William Cheng: But this as time is your seat time rotational they didn't see 85 00:11:27.420 --> 00:11:34.470 William Cheng: And also the data transfer time that has nothing to do with this way, this way time right this way it happens for all the other kernels are in front of you to finish. 86 00:11:34.680 --> 00:11:38.490 William Cheng: So therefore you can if you can actually, you know, a break the colonel split into two parts. 87 00:11:38.910 --> 00:11:45.930 William Cheng: You know, part of info to department is part of them go to the secondary days or the or the backup this and now you're Wait, I'm going to get a cut in half. 88 00:11:46.620 --> 00:11:54.150 William Cheng: Okay, so eventually when you're the first threat at the head of the head of the dis que well then in that case you access. I'm still going to be the same. 89 00:11:54.720 --> 00:12:03.660 William Cheng: Okay. But, on the average, you're going to wait a lot less. Okay. So, therefore, you know, in this case we have multiple days, you can actually, you can actually improve the system performance by doing something like that. 90 00:12:04.350 --> 00:12:15.720 William Cheng: Right, so we're going to see the different ways to use a multi multi dismiss them and we want both the system to have good reliability to have a group visibility and also we want the system to go as fast as possible. Okay. 91 00:12:17.490 --> 00:12:25.560 William Cheng: All right, so, so, so we try to introduce multiple this, we really don't want to modify our actual file system, right, the actual file system. 92 00:12:26.040 --> 00:12:30.090 William Cheng: Now the actual classes and low we saw before it was used to manage one desk. 93 00:12:30.570 --> 00:12:38.700 William Cheng: Okay. So, therefore, what we should do is that, you know, let's not change the ordinances, then we just want to create the illusion that when we have multiple days it's as it wouldn't have one desk. 94 00:12:39.090 --> 00:12:44.280 William Cheng: Okay, so. So inside the Colonel. Typically, you know, this particular layer. So again, we're going to use one level interaction. 95 00:12:44.700 --> 00:12:56.250 William Cheng: Okay, at this level in directions that Colonel typical is known as the Logical Volume Manager, as he is a logical Volume Manager over here. So, what it will do is it will present to the fast sauces and as if there's only one desk. 96 00:12:57.420 --> 00:13:07.140 William Cheng: Okay, so what what does that mean there's only one this right so to get the view of the desk is that it's a rail this block. So in this case, all you have to do is that you have a tree, the you know the entire system as a real this block. 97 00:13:07.680 --> 00:13:13.560 William Cheng: Okay, and then this Logical Volume Manager can't decide whether I want to do marrying right. This one is primary device as backup. 98 00:13:13.770 --> 00:13:20.010 William Cheng: Or if I have multiple days if I don't really worry about that. This is going to die. So what I can do is I can just increase the disk capacity. 99 00:13:20.700 --> 00:13:28.560 William Cheng: Okay, bye bye bye bye using two days and have a much bigger file system. Okay. Or maybe there are some other performance tricks that I can make to make the make the file system. 100 00:13:29.490 --> 00:13:33.630 William Cheng: look a lot faster. So we're going to sort of talk about what other these are what these other techniques are 101 00:13:34.080 --> 00:13:40.980 William Cheng: Okay, so by using the Logical Volume Manager, we hide away all these, you know, all these detail away from the actual file system. 102 00:13:41.670 --> 00:13:49.260 William Cheng: Okay. So typically, you're gonna see a lot of us operating system they're implemented, I do it this way. Right. So this way you actual file system doesn't have to change. 103 00:13:51.150 --> 00:14:00.960 William Cheng: All right, so some of the, the decision you can make with a Logical Volume Manager. Right. One is to to do. Marry, which is what I mentioned before, you have a primary is you have a backup this over here. 104 00:14:01.380 --> 00:14:12.210 William Cheng: So they will act as one this right so we perform the right operation, you need to write for both the right to both Dr. Only when right to both Dr. Finish, then the Logical Volume Manager will say oh no you finished right into the desk. 105 00:14:12.690 --> 00:14:24.240 William Cheng: There and also we used to perform the read operations. You just have to read from one, so therefore it's going to be the logical volume manager that that will be the one that was split the the the traffic into two different queues. 106 00:14:24.570 --> 00:14:29.220 William Cheng: So this way you can read data in parallel. OK, so the logical Bon Jovi magic can do that. 107 00:14:29.670 --> 00:14:35.130 William Cheng: Logical volunteer manager can also do something else costs spanning there, wouldn't you see to disk over here. 108 00:14:35.580 --> 00:14:40.110 William Cheng: To make the file system a little faster, right. So for example, if you want to store a file onto the desk. 109 00:14:40.650 --> 00:14:50.550 William Cheng: Okay, now that you know that you can actually have to to harddrive, what would you do well maybe what I can do is that I could put the first half of the file over here on the first is, and the second half of the file on the second disc. 110 00:14:51.570 --> 00:14:55.980 William Cheng: Guys, how would that help, right. So when I tried to retrieve this entire file I can do it in parallel. 111 00:14:56.190 --> 00:15:00.210 William Cheng: Okay, so this way, we'll run a lot faster. Right. Well, I can also go to a crazy extreme 112 00:15:00.420 --> 00:15:08.340 William Cheng: I will put the first bit of the file or the first bite of the file on the first s and the second bite over here on the second this. The third by on the first day. The fourth by on the second is 113 00:15:08.550 --> 00:15:18.750 William Cheng: The fifth by on on the first is, so I'm going to do this alternating you know by one on one, one on each side. So when I try to retrieve the first block, I will be able to use these two disc in parallel. 114 00:15:19.440 --> 00:15:30.030 William Cheng: OK. So, again, in this way I can retrieve the same amount of data and half the data transfer time okay or, you know, in the same amount of time that I did before I can actually retrieve twice as twice as much data. 115 00:15:31.110 --> 00:15:36.450 William Cheng: Okay, so this way my file system was going to be a is going to appear a little faster net 116 00:15:37.110 --> 00:15:41.760 William Cheng: Alright, so it's a Logical Volume Manager is the one is going to make this decision, whether you're going to do merry way. 117 00:15:42.000 --> 00:15:48.420 William Cheng: What are you going to do spanning we try to spend the data across these. This will kind of what kind of decision that you have to make right 118 00:15:49.140 --> 00:15:56.880 William Cheng: So. So as it turns out that, you know, there are different things that you can you can do. There are two different parameter of striping data across the desk so so so 119 00:15:57.480 --> 00:15:58.050 William Cheng: What a striking 120 00:15:58.290 --> 00:16:09.870 William Cheng: striking is that, you know, join a stripe across all these discovery here, so will you. Will you do something like that. You put some data on the first is something on the second day or something or third this something on the fourth day there's some data on the fifth this 121 00:16:10.290 --> 00:16:19.530 William Cheng: Okay, so there are two parameters that you have to think about. Number one is what, what is the strike with okay I don't have to strike the entire data across all the five days, I can actually stop at three 122 00:16:20.010 --> 00:16:28.500 William Cheng: Okay. So in this example, the first unit will go and the first is the second unit will go on the second this the third, you know, I'm on a third desk, but the fourth unit will go back to the first desk. 123 00:16:28.770 --> 00:16:35.190 William Cheng: Right, so every three days ago we have. I'm going to strip the data across the entire three days instead of striking across all the other desk. 124 00:16:36.450 --> 00:16:47.040 William Cheng: Right so so you said, Well, why do I want to do that right you know so. So what if I have 20 days right if I stripe data on you know across 20 years when I try to retrieve data on these 20 days. I'm going to be 20 times as fast as many times as fast 125 00:16:48.180 --> 00:16:53.370 William Cheng: Okay, but later I'm going to sort of learn that, you know, sometimes we might not be a good idea to stripe across too many desks. 126 00:16:53.790 --> 00:17:02.370 William Cheng: Okay, so there are advantages and disadvantages over here. So one of the things that you that the logical volume manager has to figure out is, what should be the stripe with. Okay. The second thing that it has 127 00:17:03.030 --> 00:17:09.180 William Cheng: To figure out is going to be what are the stripe unit right the unit one over here. What does the unit is the unit one bit. 128 00:17:09.960 --> 00:17:17.220 William Cheng: OK, so the unit one bit over here, this is, this is no as fit into leaving you put one bit on the desk. He put a second bit of the second death and you 129 00:17:17.550 --> 00:17:31.260 William Cheng: Put the Serbian on the third desk and you go back to the first one you do this, you know, you know, so you're sort of stripe stripe the data across these this one bit at a time and then you pack all the bits together into this blah, and then you put a date on this one. 130 00:17:32.460 --> 00:17:36.360 William Cheng: Okay, so he's got a good way to go. It seems kind of silly that you will do this one bit at a time. 131 00:17:36.570 --> 00:17:44.370 William Cheng: Okay, so maybe you will you do this. One bite at a time. Maybe you do this one sector at a time. Maybe you do this one block at a time. So it's really not clear what we have to do. 132 00:17:45.060 --> 00:17:51.810 William Cheng: Okay, so therefore we want the Logical Volume Manager. Does that strike data across these this yes to worry about what should be the right strike with 133 00:17:52.050 --> 00:17:58.890 William Cheng: And what should be the right striping unit. Okay, so you can see that this actually can get very, very complicated these things that you get so complicated. 134 00:17:59.400 --> 00:18:05.400 William Cheng: You know, you know, over time, computer science actually come up with a new sub discipline know as storage storage systems. 135 00:18:05.790 --> 00:18:10.740 William Cheng: OK, so the people in story says that they actually try to sort of figure out what is the best way to put data on desk. 136 00:18:11.430 --> 00:18:19.440 William Cheng: Okay, so again we have multiple days, the complexity is going to go exponential and it becomes very, very difficult to actually sort of figure out what's the best thing to do. Okay. 137 00:18:20.850 --> 00:18:24.390 William Cheng: Alright, so again I have no answers. What is the best way to do it. So, therefore, again, 138 00:18:25.290 --> 00:18:37.950 William Cheng: So a USC, I guess once in a while, they actually have a class at the graduate level call storage systems so they can offer once in a while. So if you're interested in, you know, try to throw figure out how to actually put data on the desk, you should take one of those classes. Yeah. 139 00:18:39.990 --> 00:18:47.670 William Cheng: Alright, sort of a brief summary right out. Right. So when you have multiple days that you can run these this in parallel. So you can increase parallelism. Okay. 140 00:18:48.090 --> 00:18:59.730 William Cheng: You can retrieve these blocks belong to multiple files simultaneously if they're on different days. So this way. If you want to retrieve the entire file, you can actually have a good speed up right so if you have 20 days you're going to end appointed time faster, right. So that's great. 141 00:19:01.920 --> 00:19:12.270 William Cheng: Alright, so, so, so, so also, you know, so the way we also think about this, right, is that when you try to access the disco we here. We talk about you need to spend see time rotational they didn't see any data transfer time 142 00:19:12.450 --> 00:19:16.620 William Cheng: So clearly, if you transfer all these data and prowler that's going to be fine. But what about see time 143 00:19:17.340 --> 00:19:21.150 William Cheng: Okay, so if on these four disc over here or 20 days How many days you have 144 00:19:21.300 --> 00:19:26.550 William Cheng: If you seek them in parallel. Well, in a way, you know, even though every day is the seat time might be a little different. 145 00:19:26.670 --> 00:19:34.890 William Cheng: But, on the average, they're going to sort of on the average is going to be, you know, what you end up doing is that, on the average, you're going to end up spending only one seat time 146 00:19:35.580 --> 00:19:39.870 William Cheng: Okay, I mean it's not exactly what's the time because you have to worry about standard deviation, all that kind of stuff. 147 00:19:40.050 --> 00:19:48.300 William Cheng: Right. But on the average is about onesies. I'm so, so we're going to assume that all these tickets disconnect you seek and prowl and when you wait for rotational latency. Again, some this 148 00:19:48.540 --> 00:19:54.360 William Cheng: Is going to be a little faster some business a little slower, but on the average, you know, you basically wait for one rotational latency. 149 00:19:54.930 --> 00:20:02.910 William Cheng: Okay, and then India we transfer data. Well, clearly the data can be transferred in parallel. So therefore, on the average, hopefully. Hopefully you're going away. Okay. 150 00:20:03.780 --> 00:20:09.600 William Cheng: All right, so, so, so this. These are the clear advantages of having multiple days. What about the disadvantages over here. 151 00:20:09.900 --> 00:20:19.170 William Cheng: Okay. As it turns out, the variance is going to kill you. So, so, you know, the average is just part of the story, you have to worry about variance. So I don't know if you remember what variances are 152 00:20:19.530 --> 00:20:23.640 William Cheng: In warm up. Number two, we study various right so that tells you you know what the variation is 153 00:20:23.820 --> 00:20:30.240 William Cheng: So let's say the horizontal axis over here is going to be the, the other this access time or the access time over here. Yeah. 154 00:20:30.390 --> 00:20:39.240 William Cheng: So what is the distribution of the access times going to look like when you have a multiple this system. Right. So. So as it turns out of habit is that the more disk, you have, the more spread out. 155 00:20:39.420 --> 00:20:48.300 William Cheng: The access time is going to be. So I'm going to have something like this. Okay, so you can actually have an average right here and the standard deviation over here tells you how spread out the data is 156 00:20:48.900 --> 00:20:53.250 William Cheng: OK. So in this case, will you go to four different disk over here if they have a large standard deviation 157 00:20:53.490 --> 00:21:02.490 William Cheng: That one is the access time is going to be here right and the other is the answer is going to be here and the SSD. The third is the system is going to be here. And the fourth is the SSL is going to be here. 158 00:21:02.970 --> 00:21:12.030 William Cheng: Okay. So this guy is how long do you have to weigh one since you have to wait for all for this to return data to you. So in this case, the, the, the access time is going to be the worst case access time 159 00:21:13.230 --> 00:21:21.900 William Cheng: Alright, so, so even though we have average access times over here, right, but it persists, you have to wait for all for this to finish you can really use the average anymore. You have to look at the worst case performance. 160 00:21:22.200 --> 00:21:27.300 William Cheng: Okay. So, therefore, if you have the access time to be distributed with a small deviation 161 00:21:27.510 --> 00:21:36.300 William Cheng: Or in that case the access time is going to be a more predictable and the worst case is going to be much it's going to be much, much closer to the average compared to the case when you have, you know, 162 00:21:37.230 --> 00:21:47.970 William Cheng: Have a large variance. Okay, so, so, so the large various is going to kill the performance of your system. Okay, the bigger the variance or the more, the bigger the trouble you ran. Okay. 163 00:21:48.780 --> 00:21:56.070 William Cheng: All right. And also, as it turns out that the more disk. You have you're going to actually end up with less reliability, right. So we're going to sort of look at that a little later. 164 00:21:56.910 --> 00:22:01.860 William Cheng: The final part of yours is about the heterogeneous desk right in the beginning when you try to fill your system. 165 00:22:02.520 --> 00:22:09.690 William Cheng: You might have your system. Start with all the this there are the same, right. One day, one of the dis die. You're going to go to Amazon and going to go to frys, and get a new desk. 166 00:22:09.930 --> 00:22:18.660 William Cheng: Chances are you your new. This is going to be completely different from all the other desk. So guys, what does that mean well when you have that kind of situation. That means that your variance is going to get worse. 167 00:22:19.350 --> 00:22:28.080 William Cheng: Okay, so, so, so, so in that case, you know, again, the system performance over here is going to be, you know, the performance characteristics going to be very different from from before. 168 00:22:28.320 --> 00:22:36.540 William Cheng: And again, the reason might be the variance is actually a killing your performance. Okay. All right. So, so again later. I'm going to sort of talk about the part of the reliability issues. 169 00:22:37.470 --> 00:22:46.500 William Cheng: Alright, so, so again, you know, computer science people come up with, you know, sort of sub disciplines or story. It's just them to sort of study how these things can be done. 170 00:22:46.890 --> 00:22:50.400 William Cheng: So in the end, you know, when you try to determine how to strike while we're here, 171 00:22:51.000 --> 00:22:56.040 William Cheng: So they they studied this actually to death. So eventually, sort of come up with some kind of a rule of thumb. 172 00:22:56.400 --> 00:23:01.440 William Cheng: To come up with them theorems about you know how to, you know, how they actually predict performance in a storage system like this. 173 00:23:02.010 --> 00:23:08.580 William Cheng: One of the, the number they were using is something called a concurrency factor, the concurrency factor basically saying that, how much you know how 174 00:23:09.210 --> 00:23:13.650 William Cheng: How many colonel colonel thread that you can have to actually perform the access on this in parallel. 175 00:23:13.950 --> 00:23:20.040 William Cheng: OK, so the the concurrency factor of equal to one, that means that you can only read one disc at a time or using one kernel swear 176 00:23:20.280 --> 00:23:25.470 William Cheng: When the concurrency factor over here, become increasingly bigger than one that means that you can actually starting to have parallels. 177 00:23:26.040 --> 00:23:40.560 William Cheng: Okay, so one of the one of the sort of the research, research results that people have, you know, sort of, sort of figure out, you know, when they have the storage, you know, whenever storage system they found out that the larger the concurrency factor, the less important striping is 178 00:23:41.580 --> 00:23:48.390 William Cheng: Guys is kind of counterintuitive. When we can actually do more things in parallel. We actually want to keep all the data on one desk. 179 00:23:49.200 --> 00:23:53.490 William Cheng: Okay, so instead of driving data across multiple days we actually, we should keep all of it on this. Okay. 180 00:23:54.120 --> 00:23:59.340 William Cheng: So, so why is that whereas over here we're sort of going to give you a sort of intuitive. You know explanation over here. 181 00:23:59.670 --> 00:24:07.110 William Cheng: Right, we have for discovery. Here we have a father look like this. And now we tried to stripe it on for desk right so which way. Which way is going to give you a better performance. 182 00:24:07.500 --> 00:24:13.800 William Cheng: What we just talked about this already, right, if you take this file you chop it into four parts. Right. And each part of the you put on a separate desk. 183 00:24:14.040 --> 00:24:21.600 William Cheng: And now, in the first case over here when you try to retrieve this file, you're going to spend. Once you time run rotational latency and one data transfer time 184 00:24:22.350 --> 00:24:25.140 William Cheng: Okay, but what about the second case over here. How much do you have to pay 185 00:24:25.350 --> 00:24:29.940 William Cheng: What you're doing seek in parallel. So on the average is going to be once the time. So you pay once each time. 186 00:24:30.120 --> 00:24:36.270 William Cheng: You also perform rotational wherefore rotational latency in parallel. So therefore, on the average, you don't wait for one rotation latency. 187 00:24:36.480 --> 00:24:42.570 William Cheng: But now the data transfer time over here. Each one of them is a quarter of the original size. So therefore, we can do this in parallel. 188 00:24:42.930 --> 00:24:49.890 William Cheng: Guys. So in the end, the data transfer time over here is going to win over the first case that because in both cases, you only spend one 189 00:24:50.280 --> 00:24:59.940 William Cheng: See time one rotational agency for the first time. But the first one you transfer the entire file, you might shot or the second one over here is going to own take you one quarter of the data transfer time 190 00:25:01.290 --> 00:25:07.890 William Cheng: Alright so this one seems to be a very obvious. You want the stripe as as much as you can. This way you can increase more parallelism. Okay. 191 00:25:08.490 --> 00:25:15.540 William Cheng: What about if you look at this case over here. Now I have four files. I want to put all these four files, you know, in the, you know, on the on to these this is then 192 00:25:15.780 --> 00:25:19.830 William Cheng: Why would I do what the first approach over here to say that every this will get a separate file. 193 00:25:20.400 --> 00:25:27.030 William Cheng: Okay, so I'm going to put the entire file and this one over here. The and have the entire second, one second death and how thorough found the third and 194 00:25:27.510 --> 00:25:35.100 William Cheng: A fourth on the fourth. So, but also according to the previous slide, the better way to go. Is that for every file. We're going to stripe it across for this. 195 00:25:35.340 --> 00:25:40.440 William Cheng: Right. So this is the person number one on pop over here approach number to over here says you need to strive every file. 196 00:25:41.340 --> 00:25:48.990 William Cheng: Now, so we're going to look like this right first file. We're gonna start the class for this. And if I were going to ascribe requests for this. And now what if you want to retrieve all these four files. 197 00:25:49.860 --> 00:25:55.290 William Cheng: Okay, if you want to retrieve all these four five. The first case over here. How much time do you have to pay 198 00:25:55.770 --> 00:26:01.950 William Cheng: What sort of get you can seek in parallel. So therefore, you're going to end up paying for one seat time assuming that all these files are about the same size. 199 00:26:02.340 --> 00:26:12.000 William Cheng: They all sit around and plays on the desk. So you're going to spell. Once the time when rotational latency and they need to spend time transferring all these all these all these data, you know, 200 00:26:14.220 --> 00:26:17.490 William Cheng: In the physical memory that. What about in the second case over here. 201 00:26:17.970 --> 00:26:31.470 William Cheng: What will you strive everyday to block across these these for Dr. So in this case, where you need to go to the first is you need to spend for Sikhs for wait for for rotational latency and then the data transfer time you add them all the data shows that they're exactly the same. 202 00:26:32.940 --> 00:26:41.310 William Cheng: Okay, so therefore, in the end, remember the seat time the rotational latency there on the order of milliseconds. So in the case. And so in this case the first case will actually went out. 203 00:26:42.450 --> 00:26:49.620 William Cheng: Okay, so, so therefore, so, so, so, so again the the analysis over here is that is that you're gonna if you're going to end up with multiple Colonel 204 00:26:49.980 --> 00:26:57.180 William Cheng: Can access multiple this at the same time, which means that the concurrency factor is bigger than one, then you want to keep all the data in one desk. 205 00:26:57.690 --> 00:27:10.320 William Cheng: Okay, because if you strike the data across multiple disk over here. You going to end up spending too much time, you know, waiting for see time when you see, okay, so it's a little bit of counterintuitive, but if you look at this particular case, it's very clear where you have to do, right. 206 00:27:11.880 --> 00:27:22.650 William Cheng: All right, so that's one thing that people found out. And also, you know, the other case over here, you know, is that we need to talk about the reliability. Okay, so 207 00:27:23.100 --> 00:27:29.040 William Cheng: So, so the assumption over here is that we have many desk over here, right. So if you think about the data center data center. How many this doesn't have 208 00:27:29.430 --> 00:27:40.110 William Cheng: Well, the data center my 1000. This might be a 10,000 desk. Okay, so what's going to be the problem at the data center right in the data center can only be operational when all the disk or running 209 00:27:41.520 --> 00:27:53.700 William Cheng: Okay, so, so, so again. So, so, you know, the data center, you know, for the data center to be considered, you know, available or considered reliable. So let's assume that all that this has to be available at the other. This has to be up and running. 210 00:27:53.910 --> 00:28:00.060 William Cheng: Well, in that case, you're going to actually you're going to go in that case, you're going to end up with the with the reliability problem. Okay. 211 00:28:00.660 --> 00:28:03.300 William Cheng: So, so what what is so what kind of reliability probably 212 00:28:03.690 --> 00:28:11.700 William Cheng: Gonna get we're gonna do is a very, very simple model to to sort of study that this system like this. We're going to assume that that this failure their ID. 213 00:28:11.910 --> 00:28:24.030 William Cheng: Okay, so it stands for their independent and they are identically distributed. So what we're talking about is the failure mode for all the this, they're all independent of each other. Okay. And they all have exactly the same failure characteristic 214 00:28:25.140 --> 00:28:30.000 William Cheng: Okay, I mean reality. Of course, that's not true, right, because if you have a one. This controller controlling for different days. 215 00:28:30.210 --> 00:28:37.500 William Cheng: If the controller died when all these for this you can access the answers. So they're dead. Okay, so, so, so you can be elevated actually related to each other. 216 00:28:37.740 --> 00:28:47.070 William Cheng: But we're going to sort of make the simplifying assumption to assume that they are all independent and also they're all identical you do stupid. And so the way we sort of talked about. So the 217 00:28:47.490 --> 00:28:51.390 William Cheng: How did this fail is that we're going to use this failure probability of your call f 218 00:28:52.350 --> 00:28:59.520 William Cheng: That. So, f is going to be in a failure probability. So, for example, every time you walk into a data center. What is the probability that you have a desk desk. 219 00:28:59.910 --> 00:29:09.810 William Cheng: Because all of this are exactly the same. Right. So we hear this will be become the failure probability of one days. Typically, this one is a very, very small number, right, because the disk. I really a very reliable system. 220 00:29:10.410 --> 00:29:13.440 William Cheng: Okay, I don't know if you're actually on a system where the disk ever died. 221 00:29:14.580 --> 00:29:23.130 William Cheng: Okay, so, so if you think about, you know, the desktop. Have you ever bought and you're laughing your robot typically the machine is going to be dead, or it's going to be outdated before that this ever died. 222 00:29:23.760 --> 00:29:32.040 William Cheng: Okay, so the hard drive is actually very, very reliable. So this probability could be really small. It could be 10 to the minus 10 to the minus nine, it could be 10 to the minus 12 223 00:29:32.250 --> 00:29:43.740 William Cheng: So therefore, the probability that this is running is going to be one minus f. So, y minus f is going to be good. Why, why this number is 10 to the minus nine is going to be 0.99999 there's going to be, you know, a nice followed by, you know, 224 00:29:44.760 --> 00:29:50.550 William Cheng: I guess there's going to be nice. So the probability of, you know, 225 00:29:52.320 --> 00:30:03.990 William Cheng: This operation is going to be pretty much 100% okay with a very small probability at that this is still there right but but what if these. What about the possibility of to this that are failed. 226 00:30:05.280 --> 00:30:12.630 William Cheng: Okay, so, so, so what happened is that, you know, so, so in order for your system to be operation or what if you require all that is to be operational. 227 00:30:13.230 --> 00:30:19.050 William Cheng: There. So in that case, you know, in order, you know, for the probability that one. This is working over here is going to be one minus f 228 00:30:19.650 --> 00:30:24.540 William Cheng: The probability that to disk are working. So since they're independent, the probability will multiply 229 00:30:25.110 --> 00:30:31.590 William Cheng: Okay. So, therefore, if you have to discover here, the probability that both this car operational is going to be one minus f times one minus f 230 00:30:31.740 --> 00:30:40.110 William Cheng: Right. So again, you know, y minus f is going to be zero point nana nana and if you multiply by, you know, by, by so you're going to end up to be a number that's very, very close to one. 231 00:30:40.650 --> 00:30:54.780 William Cheng: Okay, what have you have a three. This is what we're even three disk system. Why, in that case could be one minus x times y minus x times y minus F or if you have an end, the system is going to be one minus f to the nth power. Okay, so what's wrong with this equation. 232 00:30:55.980 --> 00:31:05.850 William Cheng: Well, this equation is exponential equation or geometric equation, right. So, so we know what it looks like. Well, if the horizontal axis over here is n at some point where there's large enough, this curve is gonna look like this. 233 00:31:07.050 --> 00:31:14.550 William Cheng: Okay. So even at the beginning so so as you if this one is close to one stuff over here at some point that the others are all of a sudden is going to go to zero. 234 00:31:16.230 --> 00:31:22.470 William Cheng: Okay. I mean, it's almost like the thrashing car over here. So the basic idea here is that when and cross a certain threshold, all of a sudden 235 00:31:22.890 --> 00:31:28.320 William Cheng: You know the probability that you're going to end up with the with the with the death is that it's almost going to be 100% 236 00:31:28.950 --> 00:31:34.740 William Cheng: Okay, even though at the beginning, it's almost impossible to get them to get a feel says them as n increases. So if you think about the data center. 237 00:31:34.950 --> 00:31:45.690 William Cheng: Data Center has 10s of thousands of this. So every time you walk into the data center there's going to be at their desk. Okay, so if your data center require all that this to be up and running, then your data center will always be down 238 00:31:47.160 --> 00:31:55.500 William Cheng: OK. So again, the reason over here is that we assume that they are you know independent identically distributed as it turns out, this is actually in real life is going to be the case right if you have a data center. 239 00:31:55.800 --> 00:32:04.200 William Cheng: Thousands of this, chances are there's going to be dead desk. Okay, so, so in that case how we supposed to stripe all these data across the desk over here so that 240 00:32:04.680 --> 00:32:10.530 William Cheng: You know, so, so, so, so that we can actually have a system that's reliable can also be okay also be available there. 241 00:32:11.190 --> 00:32:19.800 William Cheng: Alright, so, so, so the solution over here is a system called raid. So Ray stands for Redundant Array of Inexpensive desk. 242 00:32:20.670 --> 00:32:28.350 William Cheng: That. So it's kind of weird terminology over here. It says, Well, why, why does it have to be inexpensive this if they are expensive this. There's also work. 243 00:32:28.740 --> 00:32:33.360 William Cheng: Okay, so, so some people call this the racism. Some people calling the disk array. 244 00:32:33.810 --> 00:32:40.680 William Cheng: So if you go to Amazon and try to buy a discs them. So something you they will call them the rays of and they will call the discourages them. 245 00:32:41.070 --> 00:32:44.250 William Cheng: So you can actually buy these directly from Amazon. These days, or via from frys 246 00:32:44.820 --> 00:32:51.510 William Cheng: There. So what they would do is that it will put a bunch of this together over here. Okay, and then call it an array of desk or the race racism over here. 247 00:32:51.810 --> 00:33:00.930 William Cheng: Because the Redundant Array of Inexpensive desk. So, these, these are usually pretty cheap. But if you put them together, you're going to end up with a system that's even more reliable than the previous system. 248 00:33:01.470 --> 00:33:10.470 William Cheng: Okay, so why is that right, the solution over here is that we're going to combine striping and mirroring together to make a system that has even better performance and also is more reliable. 249 00:33:12.000 --> 00:33:20.010 William Cheng: Okay, so, so, so, so again, this is actually a really good system. So, so over here. It says, you know, there are different variation of these races them. 250 00:33:20.520 --> 00:33:32.070 William Cheng: Re level one through rate level for a developed by IBM so IBM is the one actually come up with the races there. But today, if you see people talking about racism, the author UC Berkeley is the one that actually you know embed a rate. 251 00:33:32.610 --> 00:33:39.420 William Cheng: That will be a misconception IBM actually should get credit for it for, you know, coming up with the first, you know, few re design. 252 00:33:39.780 --> 00:33:44.520 William Cheng: The column on level one to level four, they are designed by IBM. So what happened is that, you know, 253 00:33:44.910 --> 00:33:55.080 William Cheng: In the good old days, why we saw the right. Don't be a hard drive. That was so by IBM IBM had these really, really big this they're super expensive. They're super noisy, but they also super reliable. 254 00:33:55.560 --> 00:33:59.100 William Cheng: Okay, and later on other company, they start sell these really, really cheap. This 255 00:33:59.430 --> 00:34:14.160 William Cheng: IBM was worried that maybe one of these days, the small company can actually be the, you know, Pete, IBM, you know, by putting a bunch of small this together, they will end up web to have better performance and better reliability. So IBM did is that they're going to study this themselves. 256 00:34:15.330 --> 00:34:24.930 William Cheng: So they come up with this idea that you can actually have these, you know, these, these racist them or that this races, then they're going to have better performance and the big hard drive and also they're going to end up to be more reliable. 257 00:34:25.410 --> 00:34:34.320 William Cheng: Okay, so they got a design level 1234 over here as root level, for they thought that was pretty good. They are selling it as soon as they start selling yet the 258 00:34:34.680 --> 00:34:41.130 William Cheng: People I UC Berkeley. The researcher, because they are very famous for their research in sort of storage system and operating system. 259 00:34:41.400 --> 00:34:48.300 William Cheng: They're pretty clever as soon as they see the system. They say, oh, there's a big performance problem. Okay. And then they fix it and the color a level five 260 00:34:48.810 --> 00:34:54.090 William Cheng: Okay, so, so this particular thing is actually very, very clever. So that's why UC Berkeley, get a lot of credit 261 00:34:54.510 --> 00:35:04.950 William Cheng: But also IBM should also get some credit for, you know, initially coming out of a system that alright so we're going to sort of go over these these five different races them so you can understand what they are. Yeah. 262 00:35:10.080 --> 00:35:15.930 William Cheng: Alright, the first one that come up with is the obvious solution, right, which is using mirroring. So this is the one we talked about 263 00:35:16.350 --> 00:35:24.060 William Cheng: You know, we have the Logical Volume Manager over here. There was, they will actually, you know, the two disc over here. One is the primary does the other one is the backup this 264 00:35:24.570 --> 00:35:30.300 William Cheng: So, so we hear the Logical Volume Manager, what they will do is that whenever you try to perform a right, it will write to both 265 00:35:30.570 --> 00:35:39.870 William Cheng: You know this guy over here. Wait for both of them to finish and then you consider finish writing right. Will you try to refund the disk over here, what you will do is it will split the traffic 5050 266 00:35:40.560 --> 00:35:46.380 William Cheng: Okay, so this way, the traffic will have better performance. Yeah. Alright. So, so what if one of the this side over here. 267 00:35:46.680 --> 00:35:55.470 William Cheng: Okay, so one of the this over here. What you would do is that you will you actually have to go order this and wait for it to get deliver. In the meantime, are you still using the backup this 268 00:35:55.770 --> 00:36:03.420 William Cheng: Okay, so therefore, in this case the backup this over here, what each other, perform, read, read, is going to be a little slower because you only have one dispute, right. So, therefore, you know, the average 269 00:36:03.630 --> 00:36:11.790 William Cheng: Every Colonel thread needs to wait for a longer one way for longer time. Okay, so, so that will be okay, right, because even though your, your system. 270 00:36:12.300 --> 00:36:21.000 William Cheng: One of this has gone down the system will still be available to take all your credit card number, the system will run a little slower but but but we can still continue to do business. 271 00:36:21.630 --> 00:36:22.920 William Cheng: Okay, so therefore that's important. 272 00:36:23.250 --> 00:36:27.240 William Cheng: And also, you know, they don't. When you buy a new desk over here. So how do you actually turn on the new desk. 273 00:36:27.390 --> 00:36:38.130 William Cheng: Right, so one simple way to do it is that you shut down your system over here you copy the backup this to the primary desk and then you turn, your turn. The system back on and now get you back to go back to the original configuration. 274 00:36:38.820 --> 00:36:45.270 William Cheng: That there's another way to do it, you're gonna end up with a better you know availability is that you can actually start running the second disc over here. 275 00:36:45.570 --> 00:36:57.540 William Cheng: You don't, you know, you don't make it available to your regular traffic. So what you would do is that is that you know your regular job is still go to the second disc over here. Let me clear the clutter over here, right, the primary is here the backups here. This way you 276 00:36:57.810 --> 00:37:02.010 William Cheng: You, you, you got a new desk. So the new this over here is completely blank. 277 00:37:02.580 --> 00:37:12.510 William Cheng: Okay, so you still have only one this Q over here so so so your customer will be still adding accessing data from the backup desk, what you will do is that inside your kernel. You will also create 278 00:37:13.230 --> 00:37:22.560 William Cheng: A create a special kernels that to repair the primary desk. Okay, how do you recreate the primary desk right so this kernel fell, we need to add add work to the work you right here. 279 00:37:22.890 --> 00:37:28.440 William Cheng: To access the data over here, try to read the two blocks from here and now. What it will do is that is that he will write data to the to 280 00:37:29.010 --> 00:37:35.730 William Cheng: The to the primary desk. Okay, so this way you apparently this will be slowly repair while your system still in operation. 281 00:37:36.240 --> 00:37:41.340 William Cheng: Okay. So in this case, when you're doing when you when you're doing replace what started when you're doing repair. 282 00:37:41.820 --> 00:37:45.570 William Cheng: Your main system over here again is going to go down a little slower because now I have extra 283 00:37:46.470 --> 00:37:56.190 William Cheng: Extra threat that are using this particular deal desk now. So again, when you have more stressed out there are accessing this. Is this your overall performance will get the greater so hopefully 284 00:37:56.430 --> 00:38:00.120 William Cheng: Doesn't think way too much. But again, can actually, you can actually, you know, tweak this 285 00:38:00.510 --> 00:38:08.850 William Cheng: So that so that if you're you know if your repair threat is using too much of the second is you can actually slow down a little bit so that you prepare a little slower. 286 00:38:09.120 --> 00:38:17.280 William Cheng: Net or if you are not really being very, very busy. You can actually increase the rate of your repair traffic. So this way, your premise system, I should go back up as soon as possible. 287 00:38:18.060 --> 00:38:27.150 William Cheng: That at the point when the primary this and the backup this are exactly the same. You can actually, you know, you know, change your parameter your operating system over here and now you go back to the original configuration. 288 00:38:28.350 --> 00:38:35.010 William Cheng: Alright, so. So again, it's very important to consider that, you know, even though you're repairing your system, you still want to continue to make your system available. 289 00:38:35.130 --> 00:38:47.550 William Cheng: And so again, you need to, you know, sort of tweak all these parameter to be just right. In order for football, you know, football for for for your system have the right kind of performance. Yeah, right. So again, you know, storage system people. The other one I just study all these problems. 290 00:38:48.900 --> 00:38:53.970 William Cheng: Alright, so that's really level one. Level two over here, you can see that we're going to have an array of desk over here. 291 00:38:54.630 --> 00:39:02.940 William Cheng: So what they did over here is that the the IBM people they use the the memory technology and then they borrow that and use it on this system. Okay, so 292 00:39:03.540 --> 00:39:09.450 William Cheng: So, so in memory technology or they have something called the error correction code, right. The having call those kind of stuff. 293 00:39:09.960 --> 00:39:14.610 William Cheng: So happened is that, you know, I don't know if you're ever, you know, try to try to buy memory from Amazon or five fries. 294 00:39:15.180 --> 00:39:24.090 William Cheng: There are two kinds of memory. You can he can get one is called the memory with ECC and the other one's called without UCC, right, the one with ECC is gonna be more expensive. 295 00:39:24.630 --> 00:39:30.900 William Cheng: Because those memories memory over here. They have a bunch of memory chips on it. So for example, if you have a four gigabyte. 296 00:39:31.470 --> 00:39:42.330 William Cheng: You know one of these memory cards over here, typically what happens is that they're gonna have a chips on it right each each ship is going to have a half of a gigabit right if you multiply that a good for gigabit over here. 297 00:39:43.260 --> 00:39:51.000 William Cheng: That. So this guy is going to have eight of this chip. So what you will do is that, you know, when you store bite into your memory or your store one bid on every one of these memory chips. Right. 298 00:39:51.240 --> 00:39:58.080 William Cheng: Each one of them is, you know, one and a half gig so entirely as four gigabytes. So the one without error correction code. This is all you have. 299 00:39:58.950 --> 00:40:06.480 William Cheng: Okay, the one with error correction coat coat. What it will do is it will actually put additional chip over here. These chips are no as parody chip. 300 00:40:06.990 --> 00:40:13.230 William Cheng: P apparent EPA are it white right over here. I you know I also did they also known as the check bids over here. 301 00:40:13.740 --> 00:40:21.690 William Cheng: So what you will do is I will, one of the memory trouble here it goes dead. What you can do is that you can actually read all this data from the parody chip also from the check. 302 00:40:22.440 --> 00:40:28.410 William Cheng: Check over here, try to figure out the data that you have lost. What are the, what are the data that the last 303 00:40:28.860 --> 00:40:41.100 William Cheng: Okay, so therefore, by developing error correction code. If you write data on all these chips. Well, one of the chip died, whether they are the data chip or the other. The Chip. Chip. You will be able to construct all the data on that messenger 304 00:40:42.450 --> 00:40:43.470 William Cheng: Or is it this way. 305 00:40:44.700 --> 00:40:48.330 William Cheng: This way, your memory actually will last for a long time because you know your 306 00:40:49.800 --> 00:40:58.650 William Cheng: Business aware of it. Because even even, even in one of the chip is dead. You can continue to use your hardware until when there are two chips that are dead. Why, in that case it doesn't work anymore. 307 00:40:59.040 --> 00:41:09.150 William Cheng: Then, so typically on the ECC the ECC memory over here. When one chip is that you're okay with two chips are dead, then that they have to buy, buy, buy new memory. Yeah. 308 00:41:10.380 --> 00:41:17.310 William Cheng: Alright so what. So what I did over here is that they did exactly the same thing, you know, using ECC technology, you know, on this. 309 00:41:17.760 --> 00:41:29.850 William Cheng: So when you will do is I will you start date on this, you will you know that the stripe unit is going to be one bit so you gonna put 101 over here 0011110001 or something like that. And then you use the 310 00:41:30.330 --> 00:41:33.990 William Cheng: Use the error correction co tried to find out what they all the other bits are 311 00:41:34.680 --> 00:41:43.260 William Cheng: Okay, so this way. Well, one of the chip is dead. Well, you can do that. You can read all the bits from all the other desk over here and reconstruct every bit over here in the desk. 312 00:41:43.710 --> 00:41:52.860 William Cheng: Okay, so therefore, when your system goes down, you will continue to operation because you know all the data, all the data can be reconstructed. So in this case you just you just go access other desk. 313 00:41:53.670 --> 00:42:01.410 William Cheng: Okay. And in the meantime, what you would do is that you will go to, you know, Amazon, about a new disc over here and then repair that this was the disrepair. You're going to go back to what it was before. 314 00:42:01.710 --> 00:42:09.240 William Cheng: Oh, that's okay. This part is very, very similar to the mirroring even when you are doing repair, you can continue to continue to have a system operational. 315 00:42:10.920 --> 00:42:17.940 William Cheng: Alright so this raid level to pretty soon IBM realized I really level twos actually pretty silly. The reason is that, you know, 316 00:42:18.390 --> 00:42:22.560 William Cheng: The memory and this they actually fail in different they have different failure modes. 317 00:42:22.980 --> 00:42:29.460 William Cheng: Okay. The problem with memory over here is if you look at the ECC memory board over here. I'm going to have a chips over here. Okay. 318 00:42:29.820 --> 00:42:34.860 William Cheng: So these are the data chips over here. Right. And then you have all these parody check. These are the parody chips right here. 319 00:42:35.640 --> 00:42:46.320 William Cheng: Okay. Typical a typical lead the way. Memory field. Is that not the entire chip is dead. Okay. The way memory fail, is that one of the chip over here one memory location is bad. 320 00:42:47.670 --> 00:42:54.450 William Cheng: Okay so well memory goes back, they go back one bit at a time, not the entire trip is that only one bit in their memory is dead. 321 00:42:54.690 --> 00:43:01.410 William Cheng: Okay, so this chip over here, this memory location over here. It can either stuck a zero or stuck at one, right. So, so if it's stuck at zero. 322 00:43:01.590 --> 00:43:06.900 William Cheng: That means that if you try to write a one need to it. Wow. Then when you try to read about, you're going to get a zero as clearly that doesn't work. 323 00:43:07.200 --> 00:43:12.180 William Cheng: Yeah. And also, if it's stuck at zero. That means that if you try to write a one into which are written by you're gonna get a zero. 324 00:43:12.870 --> 00:43:21.540 William Cheng: Okay, so you know case, what happened is that, you know, when you try to read it. You know, we try to read that particular memory location if you try to read all the other memory location, everything is fine. 325 00:43:22.170 --> 00:43:25.710 William Cheng: Okay, but for only that memory location over here and you don't know which one it is. 326 00:43:26.340 --> 00:43:32.250 William Cheng: Okay, so that's why you're going to require all these parody chips over here, because in case you just happen to be reading the memory location. 327 00:43:32.490 --> 00:43:38.310 William Cheng: All these other trip over here. Then we'll jump into action. You can actually fix the database, right here. So you can actually figure out what the bear was 328 00:43:38.970 --> 00:43:44.430 William Cheng: Okay. Most of the time you know you have you have one chip over here one address that has bad 329 00:43:44.760 --> 00:43:55.980 William Cheng: That memory goes back and the other chip is going to be at a different memory location. We have a bad address. So in this case, in this case, every chair can actually have multiple addresses and uses the American Union continue to function. 330 00:43:56.730 --> 00:44:05.730 William Cheng: Okay, so these are the failure characteristic of the memory sister. What about four desks. Now for this guy to win this diet that is actually going to raise it says, Hey, I'm dead. 331 00:44:06.780 --> 00:44:14.160 William Cheng: Okay, so therefore it's completely not like memory because memory. You have no idea who's dead right and also when it goes dead only one only one memory location. 332 00:44:14.370 --> 00:44:24.000 William Cheng: Inside half a gigabyte memory location that the other day and you have no idea which memory location of this. Okay. When did this diet you acid. This control of this there is this this the alive. 333 00:44:24.390 --> 00:44:27.840 William Cheng: Alive or dead, that this control is done. I tell you what, this is alive or dead. 334 00:44:28.770 --> 00:44:36.960 William Cheng: Okay, so therefore it's a complete different characteristic. So therefore, in this case, where you can use that you all can all you have to do is to use one this as a parody desk. 335 00:44:37.290 --> 00:44:42.840 William Cheng: Okay, why do you want to only use one desk. Right. So in this case, your overhead your storage system is going to be much, much less than 336 00:44:43.320 --> 00:44:50.610 William Cheng: The previous example over here we have 10 data desk over here. How many parody of this, do we need. So again, depends on what kind of code that you're using. 337 00:44:51.060 --> 00:45:00.810 William Cheng: For this example, we're here, we're going to end up with a 40% overhead every 10 days. We're going to use for a parody desk. Okay. So, therefore, our entire system. The overheads 40% that 338 00:45:01.320 --> 00:45:11.070 William Cheng: If we're going to use a parody skim over here, no matter how many data. This that we have the parody this over here is always going to be one. And when we need to do is, I will need to determine whether we're using even parody scheme or 339 00:45:11.400 --> 00:45:19.230 William Cheng: Parody escape. Okay, so, so, so again this is just, you know, sort of fancy terms to say that when you add up all the bits are you going to get an even number, or even an odd number. 340 00:45:19.680 --> 00:45:30.000 William Cheng: Okay, so for example, if we're using a parody right if we write the data pattern over here across all this, this will go right 1001101001 over here. 341 00:45:30.240 --> 00:45:39.450 William Cheng: Okay, so if we add up all those numbers. We got to even our number, right. So over here, 12345 we have five ones, right. So, therefore, the data go on the 342 00:45:39.780 --> 00:45:47.190 William Cheng: The the the parody disco here has to be zero. So this way. When we add up all these bits over here. We're going to get end up with that, we're going to end up with a number 343 00:45:48.810 --> 00:45:52.680 William Cheng: Alright so this way when one of the dis die, what will happen, right. So if this this guy right here. 344 00:45:52.800 --> 00:45:58.650 William Cheng: We know that that this is there. So, therefore, we're going to consult a parody this and I'm going to add all these bits together. 345 00:45:58.770 --> 00:46:08.340 William Cheng: We're going to end up with 100 and then one one, while we're going to end up with four ones right all the other ones are zero. So we know that for sure that on the dead. This is there's going to be a while. 346 00:46:09.510 --> 00:46:23.700 William Cheng: Okay, if it turns out that this will be this is dead right this is only the little one that that if we retrieve all the other bits over here again we kind of number of ones 12345 golden cow five ones. So therefore, we know that for this, this, the data sitting on that this must be a zero. 347 00:46:25.200 --> 00:46:34.710 William Cheng: Okay, so therefore, in this case, no matter how many data tests that we have. We can go to 200 we're going to do 1000 we only need one parody this. So in this case, we're going to have reliability. 348 00:46:35.190 --> 00:46:41.040 William Cheng: Okay, we also, you know, we were also going to have good one very little overhead into our story sister. 349 00:46:42.120 --> 00:46:54.510 William Cheng: Okay, so this is definitely a good way to go. Right. So again, the reason we go with level three, as opposed to a level two, is that the the disk failure characterises complete different you know from for for memory failure characteristics. 350 00:46:55.710 --> 00:47:01.680 William Cheng: So, by the way, when you compete on your parody. There's another operation that you can do instead of adding them all together. Right. So those of you who are 351 00:47:02.160 --> 00:47:06.510 William Cheng: Familiar exactly how to implement addition operation, Eddie. It's the same as 352 00:47:07.080 --> 00:47:18.270 William Cheng: Performing the exclusive WAR OPERATION now. So if you want to add all these bits together, we can also exclusive or all these together. If we have our number of ones will you choose a war them together. We're going to end up getting a one. 353 00:47:19.050 --> 00:47:26.670 William Cheng: Okay, so in order for you to determine whether you have an odd number, or even number. You can also take all these bits together you exclude them all exclusive for them all together. 354 00:47:27.030 --> 00:47:31.830 William Cheng: If it turns out there are number one is going to be good one. If they are even number one is going to get a zero. 355 00:47:32.580 --> 00:47:44.370 William Cheng: Right, so, because you know we exclusive or zero with anything. You going to get anything when you choose one was something you're gonna end up flipping of it. Okay. So, therefore, adding them all together. It's, it's going to be the same as using it was war. Okay. 356 00:47:45.780 --> 00:47:53.130 William Cheng: Okay, so that's a level three and then there's a level for a reliable for me here it says why it's really silly to to do bit into leaving 357 00:47:53.550 --> 00:47:55.350 William Cheng: So why don't we actually do block into leaving 358 00:47:55.680 --> 00:48:02.640 William Cheng: Okay, so this way, we're going to write data to the first disc over here by writing the entire block of data right blogging in a bunch of zeros and ones over here. 359 00:48:02.850 --> 00:48:08.280 William Cheng: And then we're going to write the second block of data and the third block of it I whenever I all these data blog. What we're all the data disk over here. 360 00:48:08.550 --> 00:48:16.410 William Cheng: And then what we're going to do is that we're going to do a bitwise exclusive war for all of these blocks together. Right. So if you think about the data over here, a blog. It's just a real bits. 361 00:48:16.620 --> 00:48:24.360 William Cheng: Okay. And then the second one over here is going to be another area that's you take all these recipes together and then you exclusive war, all these things together vertically 362 00:48:24.810 --> 00:48:28.890 William Cheng: Okay, so in the year you're going to end up finding out what you have to put over here the last desk. 363 00:48:29.310 --> 00:48:38.370 William Cheng: Okay, so again if you expose award them altogether if you get a one, then that means the last is over here and the corresponding we need to put a zero there. If it turns out if you exclude 364 00:48:38.610 --> 00:48:43.620 William Cheng: Them together, they get a zero. Since we're using our parody, then, are the database over here is going to be a while. 365 00:48:44.160 --> 00:48:52.920 William Cheng: OK. So again, what you should do is that you take all these this block over, over here, exclusive wore them all together and you flip all the best. And those are the better you put in an apartment parody. This 366 00:48:53.310 --> 00:49:03.660 William Cheng: Okay, so this way when any of the dis died over here and you know that this is dead or in that case, you're going to console. The parody does by Exclusive. Exclusive war all these data blocks together and you flip the bits. 367 00:49:05.130 --> 00:49:13.050 William Cheng: That you don't flip the best up exclusive all our them all together. Yeah, get up. Again, you flip the bits that will be the data that they're storing their store on that desk. 368 00:49:14.220 --> 00:49:27.660 William Cheng: Okay, so again this is a level for it does blocking jellybeans that have been deleting so IBM. At this point, they're ready to sell re level for us as them, they are selling on the market, and pretty soon Berkeley people figured out that there's a major problem with this design. 369 00:49:28.680 --> 00:49:34.680 William Cheng: Okay, so, so one of the major problem with this particular design there. So let me so the industry that over here. 370 00:49:35.340 --> 00:49:42.480 William Cheng: Now, so, so, so remember we're using a buffer cache, right, the publications that have houses them. So when we try to write data into the file system over here. 371 00:49:42.690 --> 00:49:47.880 William Cheng: All we need to do is that we need to perform the exclusive war without reading a desk, because all the data in the buffer cache. 372 00:49:48.090 --> 00:49:52.710 William Cheng: We just we just do this operation in memory. And then we can actually compete what data, what data gone to this. 373 00:49:52.980 --> 00:50:05.010 William Cheng: Okay, so let's say that we try to modify one this block over here. So let's look at this point we want to monetize right here, right. So, this this plan that will modify right here. So again, since we're using buffer cache. We know that we don't have to modify all the other desk. 374 00:50:05.460 --> 00:50:17.610 William Cheng: Okay, but if we're changing the data blog over here. That means that the parody will also change. Right. So, therefore, in order for you to modify data on this number three. Over here, we also need to modify the same position over here in the parody desk. 375 00:50:18.270 --> 00:50:25.140 William Cheng: Right, so therefore the right over here is going to write to do this two days, almost like a mirror in situation we're going right to this, this, we're also going to write it this this 376 00:50:25.590 --> 00:50:29.850 William Cheng: Okay, let's say another Colonel thread that tried to modify the piece of data. They're sitting right here. 377 00:50:30.120 --> 00:50:39.600 William Cheng: Visit again using the buffer cache it knows what the new parody block supposed to be. So now this kernel threat also have the right to to this this particular this over here and the other the other day is 378 00:50:40.440 --> 00:50:51.900 William Cheng: That the third Colonel thread over here trying to modify this part of the desk over here. So I tried to modify this this blah, it needs modify this desk right here and also you modify this part over here in the parody bar. Okay, so what is going to be the problem. 379 00:50:53.010 --> 00:51:00.690 William Cheng: Well, the problem over here is that, so let's say that we actually, we do a really good, you know, good design all the rights to all these these. They're all evenly distributed 380 00:51:00.930 --> 00:51:08.700 William Cheng: Okay so India was sort of look at all the rights to all these this, they're all evenly distributed. So in this case that this queue in front of all these this they're about the same link. 381 00:51:09.150 --> 00:51:17.820 William Cheng: Okay, so therefore, whenever you try to write to this, you have to on the, on the average, you have to wait for the same amount because, you know, no matter which this you go the queue in front of you are exactly to say 382 00:51:18.510 --> 00:51:28.650 William Cheng: Okay, but in that case, what's going to be the two on a parody desk right if we have 10 data discovery here. The Q on the parody this over here is going to be 10 times longer than all the other desk. 383 00:51:30.180 --> 00:51:42.000 William Cheng: Right, because every time when you write the other days you need also the same traffic you need to go to the desk over here. So if you write 10 you know to 10 days even the you're going to end up generating 10 times the same traffic on the parody desk. 384 00:51:42.420 --> 00:51:51.510 William Cheng: Okay, so remember right now. We try to write to this the right doesn't finish until you finish writing to both this so every right to that this now has to wait 10 times longer 385 00:51:53.160 --> 00:51:57.480 William Cheng: Alright, so this is horrible. And the Berkeley people realize that. Right. So if you have a system like this. 386 00:51:57.660 --> 00:52:09.600 William Cheng: Every time so so we promote read operation is great, but we perform right operation every right operation is going to be 10 times worse. What did we have 20. This is going to be 20,000 words we have 100 S is going to be 100 times 100 times worse. 387 00:52:10.410 --> 00:52:18.540 William Cheng: That so Berkeley people with it is that they come up with another design called re level five. So here is the level five that will fix this problem. 388 00:52:18.990 --> 00:52:26.700 William Cheng: There you can actually see that the parody. This is gone. Okay, so over here every day. This is the data. This and every day. This is also a parody disk. 389 00:52:28.050 --> 00:52:35.250 William Cheng: Okay, so they call this you know they're good. They're using blogging or leaving. And then it also they spread all the parody blocks among all the desk. 390 00:52:35.580 --> 00:52:44.790 William Cheng: Okay. So for example, we can do the following. Right. So let's say I want to try to write data blog on this 1234 RIGHT. SO WE HERE. HERE IS WE WILL TRY TO SORT OF striper file across all our desk over here. 391 00:52:45.240 --> 00:52:51.930 William Cheng: So the first part over here, the data block number zero is going to go right here, the data block number one is going to go right here at eight o'clock. Number two is going to work here. 392 00:52:52.110 --> 00:52:58.650 William Cheng: And data block number three is going to go right here. And now what we're gonna do is, I'm going to compute a parody block for only these four blocks. 393 00:52:59.100 --> 00:53:01.050 William Cheng: Okay, so instead of having striping all across 394 00:53:01.380 --> 00:53:07.200 William Cheng: All across all the disk over here. We're going to only stripe across a subset of the desk. So again, these are called the strike with 395 00:53:07.380 --> 00:53:16.020 William Cheng: Right. So we're gonna start with across for this over here. And then we're going to compute a parody from zero to three, and we're going to store that on the fourth or the fifth the fifth over here. 396 00:53:16.890 --> 00:53:24.660 William Cheng: Okay, so this way when this this died. What we can do that. We can go to these four disk over here and get all the data and then we can actually compute what data is actually on the desk. 397 00:53:25.890 --> 00:53:37.560 William Cheng: Alright, we're going to continue from here. So the next day to blog over here. So, d for is going to go here, these five is gonna go here at the six is going to go here, the sevens going to go here and then we're going to compute the parody block by exclusive 398 00:53:37.890 --> 00:53:43.140 William Cheng: Exclusive wor D for the d seven together. So this will be a parody block on 47 399 00:53:44.280 --> 00:53:50.730 William Cheng: Okay, so that will be starting the next day. So again, if one of the this side over here, we could just read the other four days, we can reconstruct all the data there. 400 00:53:50.940 --> 00:54:01.740 William Cheng: I'm going to continue the eighth blogger, we are going to go here and the ninth log of yours going to go here and the 10th blog is going to go here and the 11th was going to go here and the parody from eight to 11 is going to go right here. 401 00:54:02.340 --> 00:54:11.130 William Cheng: Okay, the data block number 12 is going to go here 13 is going to go here 14 is going to go here 15 is going to go here. The parody from 12 to 15 years ago right here. 402 00:54:11.430 --> 00:54:17.130 William Cheng: So you can see what's going on right now. Right. The parody blocks is going to be spreading across all the disk evenly. 403 00:54:17.700 --> 00:54:24.660 William Cheng: Okay, so you can see that these blocks are going on different days. These parties going to go on different days. So if you use this particular scheme use 11 days and you 404 00:54:25.440 --> 00:54:35.760 William Cheng: And then widget, the data, the right is that every football, followed by another party block and now all the parody blog is going to go to all the dis evenly. So this way when you know if in the end. 405 00:54:35.970 --> 00:54:42.510 William Cheng: If you, if your track fit that go to all the this or even the data that go to the parody will also be even 406 00:54:43.020 --> 00:54:52.140 William Cheng: Okay, so therefore, in the in the air. Will you look at the the the dispute in from all in front of all these this this guy over here, they all going to be about, about the same above sent us eyes. 407 00:54:53.400 --> 00:54:59.100 William Cheng: Okay, so this is a level five, we're getting some pretty clever, you know, a solution over here. So again, what are you paying for we're 408 00:54:59.340 --> 00:55:03.930 William Cheng: What inside the actual fosters. That means that a Logical Volume Manager things going to get a lot more complicated. 409 00:55:04.050 --> 00:55:14.580 William Cheng: When you try to retrieve this block number 15 over here. Again, you're going to do some math in order to figure out, well one of the design over here you just sort of figure out where all the missing blocks. So this way you can actually go to the right. 410 00:55:14.850 --> 00:55:18.330 William Cheng: Right, this to get a parody blog in order for you to reconstruct all the data. 411 00:55:18.960 --> 00:55:33.990 William Cheng: Okay. So, by, by making a Logical Volume Manager, a little more complicated. You actually you're going to, you're going to end up having good performance and also very little overhead in terms of, you know, in terms of x, or this. Are you going to use inside of our system. Yeah. 412 00:55:35.460 --> 00:55:48.930 William Cheng: Alright, so, so again pretty clever. So if you compare the, the difference between a level four and five. Either they have exactly the same characteristic or, you know, in general, re level five typically outperform re level four 413 00:55:49.440 --> 00:56:00.180 William Cheng: Okay, so, so, so, you know, so these days when you try to go to Amazon and try to buy at this bye bye bye disk array, typically what you're going to get is either a level one or level five 414 00:56:00.810 --> 00:56:11.460 William Cheng: Because why would you want to go. Go to a level one. My if you just want a pure backup this right there you go to a level one, or if you want to use it if you want to stripe data or you want to stripe data entry level fights the way to go. Okay. 415 00:56:13.530 --> 00:56:22.620 William Cheng: All right, so after a level five people say, oh, well, there are problems or a level five, so they try to improve and they can relate to a level six and then some people come on a real level 789 416 00:56:22.860 --> 00:56:29.010 William Cheng: You know so. So again, this is where they are the storage, you know, the source system discipline computer science when crazy 417 00:56:29.400 --> 00:56:34.950 William Cheng: Lots of people do a lot of work they come up with, you know, all kinds of other name rates of one plus zero re zero plus one. 418 00:56:35.490 --> 00:56:42.960 William Cheng: So again, we're not gonna talk about that kind of stuff. So if you're interested, you should take a storage system class will tell you all different ways to store data. Yeah. 419 00:56:44.160 --> 00:56:53.190 William Cheng: Alright, the next thing we're going to sort of briefly look at is how to use Flash flash devices, you know, these days of the flash devices are your USB stick 420 00:56:53.700 --> 00:57:04.320 William Cheng: They also your SSD. So yes, it is cost. Solid State Drive so solid state drive. They're not mechanical Dr mechanical drive is the one that has a, you know, has rotational they can see, as you know, 421 00:57:05.250 --> 00:57:15.090 William Cheng: And also, have a seat time a lot kind of stuff, a flash. Is it the is it basically sort of looks like memory. You can actually access data one block at a time. 422 00:57:15.330 --> 00:57:25.680 William Cheng: Right. So what does sort of talk about flash and how does it actually change the file system. Yeah. As it turns out, we also need to, you know, deal with flash technology very, very carefully. Otherwise, we're going to end up with a 423 00:57:26.190 --> 00:57:32.070 William Cheng: With a pretty bad system. Yeah. Alright, so let's take a look at you know what it is. Alright. 424 00:57:32.670 --> 00:57:41.880 William Cheng: So the first system over here. The good part about having the flash is that the flesh is access one block at a time. So it's kind of like the file system, right, because the fastest me access to one block at a time. 425 00:57:42.150 --> 00:57:48.810 William Cheng: Okay, so, so, so, you know, there's a pretty good match for the file system. Yeah, and also the flash file system. There's no secret. 426 00:57:49.140 --> 00:57:56.460 William Cheng: Rotational I didn't see they're completely random access if you try to access the first block or the last blog that performance going to be exactly the same. 427 00:57:57.000 --> 00:58:05.790 William Cheng: Okay. So, therefore, you know, these are really great and also the flash is low power right so so that's one of the reasons I like it to us on my cell phone or on my 428 00:58:06.120 --> 00:58:12.540 William Cheng: You know, a laptop is that I can actually my laughter will last for very long time because the flash drive doesn't eat up too much power. 429 00:58:12.900 --> 00:58:19.500 William Cheng: And also their vibration resistance. Right. I don't know how many times I dropped my cell phone, you can drop my cell phone with a hard drive in it. 430 00:58:19.920 --> 00:58:27.180 William Cheng: You can pretty much dropping ones. And then, and then you need a new cell phone. OK. So again, these are you know very important sort of characteristic of a flash 431 00:58:27.840 --> 00:58:39.630 William Cheng: The downside of flesh is kind of weird. The flesh actually have a limited lifetime. Okay. As it turns out, your hard drive is actually super reliable. Okay, so that's why I say petabytes, nobody has seen a hard drive dies before 432 00:58:40.170 --> 00:58:44.970 William Cheng: Or a flash drive, you got to be very, very careful because if you are not very careful is going to die very quickly. 433 00:58:45.330 --> 00:58:54.870 William Cheng: Okay, I just a few years ago. And when the USB stick you know when it first came out, I actually bought a few of them. A turns out some of them. If I use it for week and then they all become debt. 434 00:58:55.590 --> 00:58:58.890 William Cheng: Okay. And the reason for that is that because they put the wrong file system on it. 435 00:58:59.640 --> 00:59:03.720 William Cheng: OK. So again, it's very, very important to put the right file system on the flash. I'm going to talk about what they are. 436 00:59:04.380 --> 00:59:10.590 William Cheng: They are much more expensive right for SSD. You know the price. Go over here. I mean, this is really old number 437 00:59:11.040 --> 00:59:15.720 William Cheng: one terabyte hard drive is going to cost you a 60 $60 and today is going to be much cheaper. 438 00:59:16.170 --> 00:59:28.740 William Cheng: At that time 128 gigabytes of SSD is going to cost five times more. Okay, so today, the relative number are still the same, but the hard drive is much bigger and the SSD is much bigger. Okay, but still there are much more expensive than harddrive 439 00:59:30.420 --> 00:59:39.930 William Cheng: Alright, so there are two different kinds of flash technology. One of them is the norm technology. So they are bite addressable. So typically we don't use it inside of our system. So we're not going to talk about the North technology. 440 00:59:40.350 --> 00:59:43.560 William Cheng: Typically, we're going to use inside of our system is called a nano technology. 441 00:59:43.950 --> 00:59:54.960 William Cheng: They are page addressable and the page size is one to four kilobytes is perfect for us than that so wonderful kilobytes per page and 512 kilobytes per block. 442 00:59:55.350 --> 01:00:04.470 William Cheng: Okay, so some operation, you have to do a one block at a time and some operation, you have to do a one page at a time there. So again, you know, since their pages and block the pastas, and people love it. 443 01:00:05.070 --> 01:00:12.090 William Cheng: They are very, very cheap. They're suitable for losses from us and not Berber. The downside is that there's a limit on program a recycle. 444 01:00:12.720 --> 01:00:17.100 William Cheng: Okay, so what are the programming, rather than the recycle. So whatever it is that you know for these devices. 445 01:00:17.490 --> 01:00:21.360 William Cheng: You know the return right there are very, very different. Right. So if you think about the hard drive. 446 01:00:21.570 --> 01:00:31.170 William Cheng: Will you try to read from this you pay for. See, turn your paper rotational latency you treasure data on the desk in front of this into into the device controller. Okay, that's reading 447 01:00:31.410 --> 01:00:37.710 William Cheng: We try to perform the right operation you pay a seed you pay for rotational A to Z, and then you transfer data from the controller under the desk. 448 01:00:38.280 --> 01:00:42.870 William Cheng: Okay, so there are pretty much the same operation and it just the way the data is always one direction versus the other one. 449 01:00:43.350 --> 01:00:56.070 William Cheng: For flash memory when you try to read the data you can read the data one one page at a time. Okay. But when you try to modify the data on the flash over here, what turns out to be much more complicated that so so so so 450 01:00:57.060 --> 01:01:02.940 William Cheng: So the way the the flash work is that you can turn one into a zero. But there's no way for you to turn a zero into one. 451 01:01:03.990 --> 01:01:07.320 William Cheng: Okay, why is that, well, we, I don't know. I mean, that's just the way a flash drive is 452 01:01:07.560 --> 01:01:17.760 William Cheng: You can turn one into a zero. So, therefore, if you want to modify a data block, but one to zero. You can do that. But if you go from zero to one. What you have to do you have to basically put the device into other 453 01:01:18.570 --> 01:01:25.860 William Cheng: Okay, so what happened is that we would actually burn the device and you can burn the device one block at a time. So I'm going to take one block which is 500 454 01:01:26.190 --> 01:01:33.990 William Cheng: Kilobytes over here. So what I would do is I will put into the oven. I mean, it's just a metaphor in reality what you have to do is that you have to raise the voltage on the chip. 455 01:01:34.500 --> 01:01:37.560 William Cheng: So I think it's going to be raised from five to 24 volts. 456 01:01:37.890 --> 01:01:50.130 William Cheng: Okay. Or maybe there's some some different voltages over here. So the basic idea here is that I'm gonna I'm gonna, you know, raise the votes of the desire to be much higher. So this way. I will burn this device to Sue's have all the zero go back to a one. 457 01:01:50.640 --> 01:01:53.910 William Cheng: Okay, so when they all go back to a while now, I can change 120 458 01:01:54.810 --> 01:02:02.190 William Cheng: Okay, so the only way to go from zero to one is to burn this device, put it in the oven cooking for a while and then you know all the zero become a while and now I can use it. 459 01:02:02.760 --> 01:02:11.340 William Cheng: Okay, but when you do that you damage the device you can, so, so, so, so, so, so over here. This is called to erase operation you raise it by turning all those into wire. 460 01:02:11.580 --> 01:02:22.710 William Cheng: And then you can program it so the number of time. You can erase it and program. Will you do this about 10,000 times at some point over here. Well, you try to erase the you know the block the block refused to go back to all zeros. 461 01:02:23.640 --> 01:02:30.150 William Cheng: Right. So in that case, that particular block become useless. What about the rest of the device what the rest of the device that you can continue to use that 462 01:02:30.660 --> 01:02:40.890 William Cheng: Okay, so therefore, people who tried to put a file system on the flash device they got to be very, very careful. Once it was a particular blog becomes bad. You have to actually market. So it is bad. And then we shouldn't use it anymore. 463 01:02:41.760 --> 01:02:51.180 William Cheng: They're all right. And also if you if you just want to erase it. You don't really want a programmer and also you can actually do that about 100,000 times and then the device going to become useless. 464 01:02:52.050 --> 01:02:59.220 William Cheng: Okay. So, therefore, you know, when he tried to use a flash device, you got to be very, very careful because if you keep reading. And if you keep writing to the same block. 465 01:02:59.580 --> 01:03:06.690 William Cheng: Okay, I want that. Pretty soon that the entire device will be useless. Right. So, so we stayed up late. Are you going to write to the dis going right to the device all the time. 466 01:03:07.260 --> 01:03:14.730 William Cheng: Well, I mean, clearly the superblock. That's why you modify all the time, right. So if you modify the super blog over here 10,000 times. Well, you have to throw away the flash drive. 467 01:03:15.810 --> 01:03:23.220 William Cheng: Okay, so, so, so the over here. So what what's going to be the solution. The solution is to make sure that you don't wear out a particular part of the flash drive. 468 01:03:23.730 --> 01:03:30.300 William Cheng: There. So the solution over here is know as we're leveling you want to level the were on the entire device, right. So, so I'll be here. 469 01:03:30.480 --> 01:03:38.130 William Cheng: Here is a flash device over here. You want to make sure that every block on the, you know, this particular device. They are all worn out even me. 470 01:03:39.120 --> 01:03:45.510 William Cheng: Okay, so. So basically, what you need is that you need to foster said that the only right to every block one or only one time. 471 01:03:46.110 --> 01:03:50.580 William Cheng: Okay but already know what kind of fossils that me you have that can do that. And that's a long structure file system. 472 01:03:51.060 --> 01:03:57.030 William Cheng: Right. So if we use a lot of us is them to log structure of our system is a pen only and never, never modify 473 01:03:57.630 --> 01:04:04.110 William Cheng: Now or Never update. So, therefore, what we can do is I'm going to write to the entire device was so every book a race exactly was 474 01:04:04.680 --> 01:04:07.290 William Cheng: Okay, so once we're finished doing that. What, what, what can we do 475 01:04:07.560 --> 01:04:17.940 William Cheng: Right. So one thing that we can do that if we have a hard drive. We can do is that we can actually copy all the data over here into a hard drive and then we can erase the entire device. And now we can you know put the data from the harddrive back in 476 01:04:18.480 --> 01:04:21.120 William Cheng: Here over here and now all the data will go to the beginning of 477 01:04:22.380 --> 01:04:26.670 William Cheng: The beginning of the flash drive over here, right, because, you know, anything that we update over here. They don't need they 478 01:04:26.940 --> 01:04:31.920 William Cheng: Don't need to go back. So we're going to take up the beginning data, the part of the Lost Ark of us then. 479 01:04:32.070 --> 01:04:42.450 William Cheng: Again, we're going to still continue to write that this device over here, what would we say I'm going to do this over and over and over again. So this way, the entire flash drive the were on every block is going to be exactly the same. 480 01:04:43.710 --> 01:04:47.820 William Cheng: OK. So again, this is why the reason we talked about the wrong long stretch of us is that we can do something like that. 481 01:04:48.390 --> 01:04:51.810 William Cheng: Also, what if you don't have those don't don't actually have a second hard drive. 482 01:04:52.530 --> 01:04:59.010 William Cheng: So you don't have a hard drive to read all the data into over here. What you can do is that you can also you know when this device which then over here. 483 01:04:59.160 --> 01:05:10.620 William Cheng: You can start reading from the beginning, over here, and then keep a memory data structure and start modifying the flash drive one block at a time. Okay, so you know what I mean, it's almost like Windows. Windows when they are doing. 484 01:05:12.270 --> 01:05:23.670 William Cheng: The, the frack Raza deeper and what they will do is that they will go to the despite all the data blocks over here and then push all the data back to the beginning part of the dry and we can do exactly the same for the flash device. Okay, so, of course, 485 01:05:25.320 --> 01:05:34.830 William Cheng: This can be done that, when we are writing data to the disk over here, we mentioned before in the log structured process that we need a checkpoint file the chopper on file actually tell you the template file. 486 01:05:35.310 --> 01:05:43.440 William Cheng: Is the, the, the, I know map and the map are divided into pieces and I know my pieces over here are stored inside the inside a long stretch of our system. 487 01:05:44.010 --> 01:05:52.170 William Cheng: Okay. So, therefore, you know, for the the processor on a flash drive. We also need the same thing over here to keep track of all these I knows where they are. 488 01:05:52.740 --> 01:05:58.500 William Cheng: Okay, so for the flash device over here, they actually give it a different name. They call this the flash translation layer. 489 01:05:59.310 --> 01:06:05.490 William Cheng: That the flash translation layer over here. Again, this is the data structure that keep track of where all the dinos are right. So if you can find all I knows 490 01:06:05.910 --> 01:06:14.940 William Cheng: That you can actually find all your file system. Okay, so where's the flesh translation layer right so if you have a separate device like a hard drive or something like that. And then the Fletcher's layer over here can be inside 491 01:06:15.510 --> 01:06:22.500 William Cheng: Could, could could be a hard drive or this can be done in memory. Okay, so what do we do is that, will you put your device over here. You're going to scan your 492 01:06:23.490 --> 01:06:28.530 William Cheng: You're going to scan your lot shorter classes that you find out where all the notes are and then you can build this data structure. 493 01:06:28.920 --> 01:06:32.370 William Cheng: Right. So again, people different people that when they implement the flash file says that 494 01:06:32.730 --> 01:06:37.140 William Cheng: They have different approach the textbook talk a lot about about the differences between all these the 495 01:06:37.440 --> 01:06:43.800 William Cheng: The system. We don't have enough time. So if you're interested, you should read the textbook. Guys, we're going to, sort of, you know, go over the basic characteristics. 496 01:06:44.100 --> 01:06:51.840 William Cheng: Of the Flash Translation over here. So again, it's a translation layer over here. So, what it will do is it will translate a logical block number into a physical block number 497 01:06:52.170 --> 01:06:57.000 William Cheng: Right. So for example, when you try to write to logical block number 20 we're going to look at the logs retroviruses 498 01:06:57.420 --> 01:07:06.360 William Cheng: Find out where is where's the first block that's available. And then we're going to perform the add the translation to go from logical block number 22 physical block number 65 in this example. 499 01:07:06.600 --> 01:07:09.660 William Cheng: So therefore inside of flash transition. We're going to remember this translation. 500 01:07:09.990 --> 01:07:16.650 William Cheng: There. So later on we're going to pay more stuff into the into the fetch over here. And next time when you try to read logical block number 25 501 01:07:16.860 --> 01:07:27.720 William Cheng: You come to the flesh translation layer, it will says, oh, you should read data from block number 65 and this one is the earlier part of the long and the earlier part of the log is read only. So, therefore, it's fine. You can actually be able to return this data. 502 01:07:28.140 --> 01:07:33.690 William Cheng: Okay, later on, you try to write block number 20 again. So now again this data blog over here need to move somewhere else. 503 01:07:33.900 --> 01:07:41.160 William Cheng: Instead of flash translation layer. We're going to allocate a new blog over here. And now we're going to remember new translation go from 28 to 96 now. 504 01:07:42.060 --> 01:07:46.200 William Cheng: Okay, so this way. The old data blog over here with it will will will never be used again. 505 01:07:46.560 --> 01:07:52.680 William Cheng: Guys, again, that's okay, you know, long stretch of us is that we're going to end up with a lot of you a waste of space inside log and that should be expected. 506 01:07:52.980 --> 01:07:59.730 William Cheng: Okay, so we'll keep doing this, this kind of stuff. So, so, so the flash translate over here will remember what they are. And then when you shut down the system. 507 01:08:00.000 --> 01:08:11.430 William Cheng: Again, you know, maybe we'll put something into the end of law. So you can actually find out you know where all your data, right, so next time we do this is that you can actually go to the flash. I go to the log and retrieve yet. The, the entire. I don't know. 508 01:08:12.810 --> 01:08:22.650 William Cheng: Alright, anyways, so the textbook, I should talk quite a bit about this. I'm going to skip all of that over here and talk about the last part inside of houses, then we just the case study over here. 509 01:08:25.140 --> 01:08:35.610 William Cheng: Alright, so there's a lot of our system has been built for Linux Linux has 57 file system built today, guys. So even though. Today we're using only st st st for 510 01:08:36.120 --> 01:08:38.100 William Cheng: Lots of people try different kinds of bosses them on that. 511 01:08:38.700 --> 01:08:47.550 William Cheng: So, just out of the fast houses and we got the foster system as a unit spouses them. It's a very important versus them because a lot of us them. Are there develop are based on the past or system right 512 01:08:47.790 --> 01:08:54.570 William Cheng: As I mentioned before yesterday to is FFS call us at three is the XT two plus journaling. 513 01:08:55.320 --> 01:09:05.280 William Cheng: Okay, so they become a crusher zillion yesterday for sex. The three plus other features such as such as they use the Windows NT data structure for for implementing extends 514 01:09:05.730 --> 01:09:12.870 William Cheng: They also implement a Logical Volume Manager. They also use a different data structure for directory, they call a hash Street. So again, if you 515 01:09:13.170 --> 01:09:19.230 William Cheng: Take the best data storage closet. You can read about all these kind of different data structure that there are other implementation of the 516 01:09:20.010 --> 01:09:27.180 William Cheng: UFC three. One of them is called the riser file system as a riser. I think that's the name of the, the, the person who come up with this. 517 01:09:27.420 --> 01:09:36.120 William Cheng: That person love the tree. So what he decided to do is that, you know, for all the inside of us is that then replace all the data structure their hash table. They all request of a Petri 518 01:09:36.840 --> 01:09:40.590 William Cheng: Okay, so unfortunately I heard that razor got arrested. 519 01:09:40.920 --> 01:09:48.570 William Cheng: So he's in jail. I don't know what for okay so we don't really know how it's gonna work out. So maybe one day, he'll get out of jail, and he will get to finish that you can tell us 520 01:09:48.900 --> 01:09:58.470 William Cheng: Whether it's the right thing to do to us between everywhere now. Oracle Oracle again they bought some ecosystem. So Microsoft them their opportunities and people, they have their own process and 521 01:09:58.890 --> 01:10:09.510 William Cheng: They have something called a BTR file system, it's not really clear. Some people call this the better file system. Some people call it the butter file system. I don't know which one is which. So again, you know, all these things are based on the federal system. 522 01:10:11.520 --> 01:10:19.770 William Cheng: For Windows NT they use the empty FS right so we we mentioned before, right, the NFL is the one they use the two level extents. 523 01:10:20.130 --> 01:10:26.610 William Cheng: So this way when each other in low profile data about data, all you have to do is you have to go to this twice, go to the first level. 524 01:10:26.790 --> 01:10:36.510 William Cheng: Run this and then you go to the second level run this. So this way you can actually find out where your data is right. So again, this one piece, the performance out of the, the, the, the, this map. 525 01:10:36.870 --> 01:10:44.700 William Cheng: In assistant bipartisan also instead of alpha first officer, because in the worst case, they need to go to the disk four times as well. So I always go to this two times. Yeah. 526 01:10:45.540 --> 01:10:56.970 William Cheng: So use the extended over here to to improve the performance of reading and writing. They also use be trees to optimize directory look up there. They also use journaling to provide crash resiliency. 527 01:10:57.750 --> 01:11:04.200 William Cheng: Now Mac OS. As I mentioned before, in the beginning, they try to use the deep analysis. Then, as it turns out, he decided go somewhere else. 528 01:11:04.560 --> 01:11:13.950 William Cheng: To use the high performance versus Mr. H AMP s plus over here. They use extends they use another version of the beach copy star tree for for optimize directory. Look up. 529 01:11:14.310 --> 01:11:30.000 William Cheng: They also use generally for crash resiliency. So one thing that you will notice in common is that they all use journaling to to make the passes them you know crash proof that right. So again, the reason for that is that journaling can be added to any existing file system. Alright. 530 01:11:31.200 --> 01:11:39.210 William Cheng: Alright, the last slide over here in chapter six over here are the sort of show you I mentioned before, the file system is complicated. There are many, many layers over here. 531 01:11:39.690 --> 01:11:42.900 William Cheng: So what we know of is that, you know, we're going to have the actual file system right here. 532 01:11:43.170 --> 01:11:49.890 William Cheng: Okay, so again the fastest the movie, or divide into two parts. We have the virtual versus them at the top over here that have actual file system at the bottom over here. 533 01:11:50.100 --> 01:11:53.430 William Cheng: And underneath the actual versus them. We're going to have the buffer cache. 534 01:11:53.640 --> 01:11:59.640 William Cheng: So you know where the buffer cat is kind of a weird layer right because typically when we think about a layer is perform some kind of a translation. 535 01:11:59.850 --> 01:12:09.270 William Cheng: Translate one kind of address to another kind of address that this layer over here inside the operating system inside of us is that this one is to make the device look really fast. 536 01:12:09.900 --> 01:12:13.920 William Cheng: Okay, so this layer over here. It's simply there to improve performance. 537 01:12:14.490 --> 01:12:24.960 William Cheng: Okay, so that's why it's not obvious. I mean, obviously, then we can actually have many, many layer, you can actually sliding extra layer over here simply to perform to add additional functionality or simply to improve performance. 538 01:12:25.860 --> 01:12:35.010 William Cheng: Okay, so typically want to see the ordinances that how these kind of layers so underneath a buffer cache over here, we saw before. There's a logical volume manager that can actually make the entire this system. 539 01:12:35.250 --> 01:12:44.370 William Cheng: Look like there's a single there's only a single this guy. So therefore, the picture that we draw over here is that for the logical model manager, they're going to present a multiple devices as large 540 01:12:45.480 --> 01:12:54.900 William Cheng: As a large array of desks that and then pick up below the logical viral manager. We're going to see the block device interface we already see that internal to 541 01:12:55.140 --> 01:13:02.970 William Cheng: The Colonel to we see their character devices or block devices. So one of the block devices like the block device make this look like it's an array of blocks. 542 01:13:03.240 --> 01:13:10.290 William Cheng: Okay, so for every device you're going to have a block device manager to manage that this so that this, we don't know about sectors. We only know about, you know, 543 01:13:10.740 --> 01:13:21.270 William Cheng: We only know about these blocks. So this is going to be the block device interface. Okay. So, this one will present the abstraction that a device is simply a real blocks and then eventually, when you go to the device. 544 01:13:21.630 --> 01:13:36.030 William Cheng: device driver that device driver is going to translate a block address into device address right so therefore the device driver that blocks the device addresses. What are divided dresses dresses over here are the head number followed by the Cerner number followed by the second number 545 01:13:37.590 --> 01:13:45.600 William Cheng: All right. Okay, so, so, so, so, so, so over here. Again, typically the opposite, you know the the POS system over here. Some companies and textbook. 546 01:13:45.780 --> 01:13:54.630 William Cheng: Spend multiple chapters talking about all these different abstraction. And maybe there are also other abstraction, they're added into the inside of our system. Right. Our textbook and he spent one chapter 547 01:13:55.020 --> 01:14:07.620 William Cheng: Talk about, you know, all the stuff we talked about. Alright. Alright, so I'm done with this part. So, so I'm going to stop the video. Now the next part of, you know, we're going to go back to chapter four. Okay, so let me show you where we are now. 548 01:14:10.440 --> 01:14:11.100 William Cheng: This 549 01:14:14.970 --> 01:14:19.980 William Cheng: Okay, so now we finished chapter six over here. We're finished all the stuff first, second, third, and fourth after chapter seven. 550 01:14:20.190 --> 01:14:25.800 William Cheng: And now we're going to go to chapter four and look at devices. Right here. Right. So this one is the fifth after chapter seven. 551 01:14:26.160 --> 01:14:35.250 William Cheng: Okay, so in chapter four. We talked about a simple system. We talked about storage management we skip the device driver, because we don't need it for our Colonel Simon will cut over, we get the co founder Brown University. 552 01:14:35.520 --> 01:14:45.210 William Cheng: You guys are now going to take a look at where you try to implement a device driver. What kind of issues, do we have to worry about that. Alright, see you. See you soon, see you in a bit. Okay.