WEBVTT 1 00:00:02.280 --> 00:00:09.780 William Cheng: This is the second part of lecture 18 so now we're going to take a look at something called namespace management. 2 00:00:10.290 --> 00:00:17.670 William Cheng: The basic idea over here is that when you have multiple file systems. How do you actually manage them. So for example we saw before. 3 00:00:18.330 --> 00:00:26.640 William Cheng: You know, on the hard drive, you might have multiple partition every particular have got to have a different file system. And this way you can going to end up with multiple facets them. 4 00:00:27.060 --> 00:00:35.220 William Cheng: Or you can just have multiple hard drive. And then there's, you know, multiple passes them on multiple hard drive. So how do you sort of you know name all these file system. 5 00:00:36.360 --> 00:00:45.120 William Cheng: You know what, what all these different POS system on the same operating system. Okay. So as it turns out, different operating system have different solutions. 6 00:00:45.780 --> 00:00:56.640 William Cheng: So, for example, on Windows machine, you know, every file system they assign them a drive letter. So there's Dr. You know, ABC. So I guess the, the, the default 7 00:00:57.480 --> 00:01:04.980 William Cheng: File system that you put your operating system problem. It's called Dr. C. And then Dr. D typically is, you know, sort of DVD ROM and, you know, 8 00:01:05.520 --> 00:01:12.750 William Cheng: Or if you have a CD. CD drive or something like that. And then there's Dr. E and F. I mean, clearly that's kind of, you know, silly because pretty soon we're going to run out of 9 00:01:12.990 --> 00:01:25.020 William Cheng: The job letters when you go to dr z then then what do you do, yeah. So later on Windows also come with a sort of different naming convention I guess Windows us you know convention like you know backslash backslash and then some 10 00:01:25.830 --> 00:01:41.250 William Cheng: Some kind of name and then followed by another directory path then on Unix, you know, you have, you know, different devices over here. So every device over here, potentially can have a different you know different file system on it and what they would do is that they will actually 11 00:01:42.540 --> 00:01:50.850 William Cheng: Allow you to to mount one file system inside the directory of another file system. Okay, so you have you basically have a main file system. That's the one has the 12 00:01:51.540 --> 00:01:58.830 William Cheng: Has the root directory. So, so there's also there's a possum hierarchy somewhere and then what you can do that. You can take another file system, you can have have 13 00:01:59.070 --> 00:02:08.880 William Cheng: Had the root of the other file system appear in a directory I node in the original file system. Okay, so, so, so this is the this is actually not done on the desk. So this is only 14 00:02:09.690 --> 00:02:14.700 William Cheng: A memory. So for UNIX system is going to be some kind of a configuration file that's 15 00:02:15.300 --> 00:02:25.260 William Cheng: I think a lot of units configuration about their org slash etc directory. So instead of direct gets larger center directory. There's some files that so specify how do you want to mount this different file system. Yeah. 16 00:02:25.980 --> 00:02:33.390 William Cheng: Whereas, oh yeah, what's important to understand that this is done in memory. And this is not on this. And the way this is done in memory is that after you finish booting your operating system. 17 00:02:33.570 --> 00:02:38.250 William Cheng: You look at these following the slashes said right directory and then you sort of figure out how you want to mount the fastest them. 18 00:02:39.750 --> 00:02:44.430 William Cheng: So where are you supposed to mount 1000 them into the directory. I know of another file system. 19 00:02:45.360 --> 00:02:54.510 William Cheng: That is sort of a picture that so units using single file system Audi. So for example here as fast as him. Number two, we can have it appear under you know 20 00:02:55.110 --> 00:03:04.470 William Cheng: We can have the entire file system shows up in the seat directory you know so. So over here, this is like, as I see, so this will be the directory where you 21 00:03:05.100 --> 00:03:11.790 William Cheng: Were where you going to mount the other POS system. Yeah, I mean, you already see the term mounting internal to writing Colonel to 22 00:03:12.420 --> 00:03:20.010 William Cheng: You know when you first start your RAM file system, the referral system is sitting on a disk somewhere and we mounted into the root directory. Okay, so, so again, 23 00:03:20.730 --> 00:03:29.460 William Cheng: Ever since you start using your, your, your, your first hard drive. It's already using mounting to mount that you know that the amount of houses them into root directory 24 00:03:30.390 --> 00:03:41.940 William Cheng: Alright, so for example on, you know, they will. Well, what you can do is that is that, you know, the, the, the, the place that you mount a file system is known as the mount point. Okay, so for example over here. 25 00:03:42.330 --> 00:03:50.880 William Cheng: So this is the root directory rather who has size Unix such etc slash user and this slash user. It's a directory. I know so directly. I know can be a mount point 26 00:03:51.090 --> 00:04:02.700 William Cheng: For file system. Okay, so what is the fastest is the fastest that may be on slash slash this to slash their size. There's two you have an entire file system. So what we can do is that we can meld the entire file system, you know, under slash user 27 00:04:03.000 --> 00:04:14.280 William Cheng: So this way. If you try to access this file system you have, you know, the way you do is that you are you, you go to the slash user directory and they're going to end up, you know, visiting the other file system. Okay so Unix 28 00:04:15.750 --> 00:04:24.510 William Cheng: As it turns out, they they they they they use this trick, you know, pretty often that so the command that you will use to to to to to to perform this mounting 29 00:04:24.930 --> 00:04:32.970 William Cheng: There's a command called Mount. So you've use a mouse slash deaths. Is this too. And then the last argument would be that directory. I know. Where do you want to mount the file system. 30 00:04:33.360 --> 00:04:43.710 William Cheng: Yeah, so, so, so, so you said a mouse slash def sizes to insights user. So from this point on, when you go to slash user, you're basically assets in the file system on slash def slice this to 31 00:04:44.160 --> 00:04:55.890 William Cheng: OK. So again, some people will look at this as, oh, this is an alias, right, because we get moving visit once a slash user over here. It's exactly the same as slash def slice this too, so therefore we're basic basically doing string substitution 32 00:04:56.310 --> 00:05:04.500 William Cheng: Okay, so please understand that this is not string substitution. So some students execution and meaning that you have sort of IP lookup table. You just convert one string to the other. 33 00:05:04.920 --> 00:05:14.220 William Cheng: This one is done using file system mounting. OK. So again, you, you probably have seen something in the winning source code. There's something called underscore, underscore mounting 34 00:05:14.700 --> 00:05:20.670 William Cheng: You and ti n g i n g over here. I followed by to underscore over here and also instant config that MK. 35 00:05:21.120 --> 00:05:25.830 William Cheng: Mountain currently equal to zero. You can also set it to one. And this way you will enable file system mounting 36 00:05:26.220 --> 00:05:30.870 William Cheng: Okay, so, so, yeah, you're not supposed to set it into one because you're supposed to focus on your Kindle samurai now. 37 00:05:31.110 --> 00:05:37.440 William Cheng: After the summer session is over. If you want to play around with. Now that you can set this one to one and then you have to write some code to get this thing to work. 38 00:05:37.860 --> 00:05:44.520 William Cheng: OK. So again, if you are, you know, if you're free for the rest of the summer, maybe, maybe, maybe that maybe that's something that you can try. 39 00:05:45.360 --> 00:05:55.560 William Cheng: Alright. So for example, when I say mouse likes, dislikes user right so now the entire file system locating a slash deaths like this, too, is going to appear in the slash user directory. I know they're 40 00:05:56.160 --> 00:06:07.380 William Cheng: So, so, so, so, so, so, so now when you try to access the bash provide the best program, I guess in different different version of Linux or Unix they appear different places. So the bash 41 00:06:08.580 --> 00:06:16.890 William Cheng: Bash shell is in slash user slash user slash slash bash. But in this case since last user is on slash deaths is this to its own different file system. 42 00:06:17.250 --> 00:06:27.510 William Cheng: So in this case, accessing slash users slash being such bash again looks like sort of a sort of a string alias. This will be the same thing that's going to slash dev side. There's two sides. You've been such brash 43 00:06:28.530 --> 00:06:33.930 William Cheng: Okay, again, this is done using process and mounting and now using string substitution that 44 00:06:35.070 --> 00:06:43.230 William Cheng: Alright, so for for, you know, for, for, for, for Linux system. Typically the mount point is inside the slash empty directory 45 00:06:43.650 --> 00:06:50.820 William Cheng: So if you look at, slide it over here. If you do it directly, listen, you're going to see you. Are you going to see that inside is empty directory. There's going to be a few 46 00:06:51.570 --> 00:06:56.460 William Cheng: That directory, I knows. So all these directory. I know they're typically they're amount points, right. So, for example, 47 00:06:56.700 --> 00:07:09.450 William Cheng: You know, when the Linux system discover a USB device. So again, how do you discover USB device right USC do devices they are. They're sort of discover at runtime. I we mentioned before, right, you know, we talked about device. 48 00:07:09.870 --> 00:07:14.760 William Cheng: When we talk a little bit about Linux boot so Linux booting is that, you know, you, you're gonna 49 00:07:15.150 --> 00:07:22.740 William Cheng: You're going to discover all these devices on the fly, and then you're going to use dynamic and Lincoln and loading and then tried to install the device driver into a running 50 00:07:23.310 --> 00:07:28.770 William Cheng: Race okay we skipped a dynamic link and loading part that. But now, what it will do is it will, you know, 51 00:07:29.520 --> 00:07:37.410 William Cheng: What, what would it discover a device. There's a file system on that device. And then what you would do is that it will actually mount the file system on that device into one of these points. 52 00:07:37.980 --> 00:07:48.720 William Cheng: Okay, so for example you know this come out one well you know what will get automatically executed when you plug in a USB device so so that slash deaths I USB zero up here under empties last USB 53 00:07:49.650 --> 00:08:00.060 William Cheng: That are Mako. So if you use the metal as x instead of using slash M AMP T. They use a different directory. So the mount point is that the different plays that cost slash volumes. 54 00:08:00.450 --> 00:08:09.360 William Cheng: You probably seen that if you're a Mac user, but you will also notice that Mac. So to take this to it to a to an extreme every time when you try to download a file that 55 00:08:10.080 --> 00:08:15.870 William Cheng: We shouldn't try to download a file on the internet. And when you try to install that far into the Mac OS X, what does it do 56 00:08:16.410 --> 00:08:20.460 William Cheng: Okay, so what it will do is it will take that file as it turns out that file is actually a file system. 57 00:08:21.390 --> 00:08:25.380 William Cheng: Okay, so for example if you try to download Firefox Firefox and Tony and selling tobacco as as 58 00:08:25.560 --> 00:08:33.060 William Cheng: You will see that the file you download we here is actually a file system. So, what it will do is that they watch you mountain into one of the mount point will be hearing slash volumes. 59 00:08:33.270 --> 00:08:41.040 William Cheng: And now you can actually access. So when you finish your installation. It says drag that you know to attract other icon into trash and all of a sudden they will get 60 00:08:41.520 --> 00:08:51.330 William Cheng: You'll get uninstalled. Okay, so there's another command which is the opposite of MA's. It's called amount or you mount and there's a huge amount over here will take us as a what amounted from afar directly. I know. 61 00:08:52.260 --> 00:09:04.260 William Cheng: Okay, so, so, so, so, so the macro. I says, they actually use Boston mounting all the time, every time when you try to download something you're downloading a file system is melting into a directory. I know. So you have access to it. When you're done, you're a mounting 62 00:09:05.910 --> 00:09:14.070 William Cheng: Yeah. So as I mentioned before, we nice, you can try mounting equal to one and config that MK. But you should do this after the semester is over there. 63 00:09:14.250 --> 00:09:21.390 William Cheng: And if you start writing the code for. So all you have to do is to grab for underscore, underscore mounting underscore, underscore, 64 00:09:21.600 --> 00:09:28.170 William Cheng: Right, you will see that inside of kernel source code. Where are you supposed to write code to get this to work. Okay. And you will notice that they're very, very little. 65 00:09:28.890 --> 00:09:32.340 William Cheng: The only a few places you have to write your code in order for you to implement the multi 66 00:09:33.030 --> 00:09:37.920 William Cheng: Okay, so this is, you know, so this is not very, very easily. And the basic idea here is that we're going to use polymorphous them. 67 00:09:38.130 --> 00:09:45.120 William Cheng: Again, well you perform path name resolution when you go to that directory. I know now that directly. I know it's called has been replaced with the file system code. 68 00:09:45.900 --> 00:10:01.530 William Cheng: Okay, so therefore, again, you know, so, so, so, so now, again, we tried to open a file the file can be a regular file can be a directory file can be a device file can be a symbolically. It can also be a file system. Okay, so using Polycom over them. It's really easy to implement a semantic yeah 69 00:10:03.060 --> 00:10:16.080 William Cheng: Alright, so, so, so, so, since you're using polymorphous that it should be clear that mounting of our system is not the same as using an alias right I use an alias is simply doing string substitution. And that's not what's going on over here we're using polymorphous them. 70 00:10:16.500 --> 00:10:19.170 William Cheng: Yeah, alright. So, again, a huge distinct distinction 71 00:10:20.820 --> 00:10:27.870 William Cheng: Alright, so we're done with this set of the slides over here and we're going to move to the last set of slides in chapter six. 72 00:10:28.380 --> 00:10:33.300 William Cheng: So now we're going to sort of take a look at the case where you have multiple drive. And what if a driver died. 73 00:10:34.050 --> 00:10:43.050 William Cheng: Okay. But before we talk about Crash resiliency, right, you have a you have one thought is that it won't be long and make sure that no matter when the fastest and die or the opposite about what you lose power. 74 00:10:43.590 --> 00:10:51.270 William Cheng: You know, we're not going to lose the desk. Okay, but what if you're discuss scratch, right. So for example, if you're spending down for some reason your this is getting old. 75 00:10:51.780 --> 00:10:59.520 William Cheng: Somehow you know that the the you know the that this have scratched the desk and once the scratch it is the entire just become useless. 76 00:11:00.150 --> 00:11:08.520 William Cheng: Okay, so this is what do you do, right, I mean, of course, we know what what we should do today, right, we should make sure that you have a backup. So in this case you will go to your cloud and you get it back up. 77 00:11:09.180 --> 00:11:13.530 William Cheng: You know through through dominated by company also you need to get a new desk right because the audience is dead already. 78 00:11:13.980 --> 00:11:20.250 William Cheng: Okay. So in this case, your system will not be operational for a while. Especially, you have to, you have to wait for a new desk there. 79 00:11:20.910 --> 00:11:26.250 William Cheng: So the question over here. Is that what should we do so, one one solution over here is to use the multiple disk system. 80 00:11:26.670 --> 00:11:37.890 William Cheng: Okay, so you have two days, maybe you can make one of them. The primary this and the other one is the backup. So in this case, when the primary this diet, you can actually switch to the backup vas we're also going to see, you know, sort of different approaches of, you know, 81 00:11:39.060 --> 00:11:40.200 William Cheng: Handling multiple desks. 82 00:11:42.210 --> 00:11:48.990 William Cheng: So can talk about the multiple this system. Right. The benefit for multiple. This is them is that you know what they do. So how you organize these there's 83 00:11:49.380 --> 00:11:53.340 William Cheng: One thing that you can do is that you can actually hold more data. Right. So instead of, you know, 84 00:11:53.940 --> 00:11:59.820 William Cheng: You know, a holy only one this worth of data, you can you can hold you know more. This worth of data that 85 00:12:00.330 --> 00:12:06.990 William Cheng: The other way to do is that, you know, if we can actually use it to increase the reliability of your system by making these this redundant. 86 00:12:07.470 --> 00:12:14.070 William Cheng: Right, so the data can be stored redundantly so that when one does fail then can be found on another desk. So how would you want to do that. 87 00:12:14.310 --> 00:12:19.800 William Cheng: And so the idea here is that we're going to use multiple tests. And then what was the primary the other ones back out. So it will look like this. 88 00:12:20.700 --> 00:12:26.460 William Cheng: Hey, here are two days and they are exactly the same. This one is a primary desk. And this was the. This was the backup this 89 00:12:26.790 --> 00:12:31.770 William Cheng: How do you make sure they're exactly the same, right, because you right to the file system on time. So what we need to do is that whenever 90 00:12:32.130 --> 00:12:40.890 William Cheng: Whenever he needs to write to the primary this, we also need to write to the backup this okay so this case right doesn't finish until we finish writing on both discs. 91 00:12:41.670 --> 00:12:43.890 William Cheng: Okay, so in this case. So typically, what you do is that we 92 00:12:44.160 --> 00:12:54.660 William Cheng: Will we will find the right operation. Once you're finished writing onto one days, then you're done. Right. So now, you actually have to wait for both is you basically have to sort of synchronized. These two days. Make sure that both of our has gone by both live has 93 00:12:55.260 --> 00:13:02.250 William Cheng: Has gone on to both this and now you're right, can be finished. Okay. So typically, that was slow down. You're right. A little bit. So again, you know, this doesn't come for free. 94 00:13:02.610 --> 00:13:06.510 William Cheng: You're going to actually take a little bit of performance hit when you have to wait for both this to finish. 95 00:13:07.410 --> 00:13:15.630 William Cheng: That. So once you start doing this over here it says it will increase your reliability, because now you know in order for your system to go down both this has to die. 96 00:13:16.260 --> 00:13:17.400 William Cheng: Okay. So, this you know 97 00:13:18.360 --> 00:13:24.840 William Cheng: I don't know if you have actually ever seen a hard drive failed that pretty much never happens right i mean you USB drive. And they can, they 98 00:13:25.050 --> 00:13:29.190 William Cheng: Did it gadget fail all the time, but your hard drive. There are pretty reliable. They basically never die. 99 00:13:29.550 --> 00:13:33.330 William Cheng: Okay, but if you have to hard drive that it's almost impossible for both of them to be that 100 00:13:33.630 --> 00:13:39.000 William Cheng: Way unless that sort of the controllers that are in that case you don't have access to the desk, even though that this is okay. The controllers that 101 00:13:39.420 --> 00:13:48.780 William Cheng: Okay, otherwise we have multiple there. So when one day, this goes down over here since the second. This has exactly the same data as the first day. Well, then you cannot just switch all the traffic to the second visit over here. 102 00:13:48.990 --> 00:13:57.060 William Cheng: And then in this case you can retrieve all your data. In the meantime, you will go to Amazon, you go to frys, order a new desk. And then what you need to do that, you need to copy the backup this 103 00:13:57.480 --> 00:14:06.300 William Cheng: You know, to the primary disk over here. Okay. So there's a question of exactly how you're supposed to copy data. What it is be over here is continuously being PPP being updated. 104 00:14:06.840 --> 00:14:13.140 William Cheng: Okay, so in that case it's gonna get a little tricky. Now, so the preset over here is that when you have multiple this system, you can make it more reliable. 105 00:14:13.920 --> 00:14:20.160 William Cheng: That and over here is also said, you know, it can increase the availability. So what's different between reliability and availability. Right. 106 00:14:20.400 --> 00:14:29.850 William Cheng: Availability sorry reliability. That means that the system is working availabilities that it means that the system is is up and running. It's also doing useful work. 107 00:14:30.780 --> 00:14:36.360 William Cheng: Okay. So for example, let's say that you know i go back back up this right. How do I actually record the backup this right 108 00:14:36.570 --> 00:14:43.950 William Cheng: One thing that can do is I can shut down my entire system to my customer TO SAY THAT NOW I'M REPAIRING my system my system is not available. 109 00:14:44.160 --> 00:14:51.300 William Cheng: To to my customer to use. So what it says. So this way. What I can do is I could have taken a new desk and then make a really quick copy from the backup this to Department does. 110 00:14:51.510 --> 00:15:00.840 William Cheng: That might take several minutes. If you have a really, really big. There's that will take hours. So during that that time your system is up and running, but it's not available to your customer. 111 00:15:01.620 --> 00:15:10.260 William Cheng: Okay, so of course if you try to build a commercial system, you want to send to be available all the time. So in that case, we actually tried to make our system available during the time we're trying to rebuild this is that 112 00:15:10.770 --> 00:15:19.050 William Cheng: OK. So the idea is, again, the system is going around a little slower but again you know it's beneficial because you can add you allow your customers to to access your data. Yeah. 113 00:15:20.520 --> 00:15:26.910 William Cheng: Alright, so, so, so, so, so, so again, you know, you know, you can use this redundantly 114 00:15:27.300 --> 00:15:32.730 William Cheng: So some people think that it's very, very wasteful. Right. He just was not what I have to have these this this you know that they're running parallel 115 00:15:33.090 --> 00:15:40.560 William Cheng: And I never see it this fail, right. So if you know you have never seen this fail. He said, Well, I just paid 100% overhead to buy the second. This might. This is 116 00:15:41.100 --> 00:15:49.320 William Cheng: Pump. But I just never dies. So in that case is a total waste of money. Okay, so some people say, well, maybe what you can do that. You can actually, you know, 117 00:15:49.890 --> 00:15:56.730 William Cheng: Make both is available, so, so, so, so again the picture look like this where you have one disc over here at the others are the deltas of year. 118 00:15:57.120 --> 00:16:00.930 William Cheng: So what you will do is that you actually spread the data around in order for you to improve performance. 119 00:16:01.110 --> 00:16:08.490 William Cheng: Where you can do is every time when you try to store a file into your desk, you can make have to fall, go to the go to the first is a half the time, go to the second desk. 120 00:16:08.850 --> 00:16:14.850 William Cheng: There, what would you want to do that, right, so next time when you turn to retrieve that this you will retrieve it from both is and now you have parallelism. 121 00:16:15.300 --> 00:16:19.860 William Cheng: Okay, so this way, your transfer time for this into memory is going to be twice as fast as before. 122 00:16:20.700 --> 00:16:25.830 William Cheng: OK, so again we have multiple days, you can actually take advantage of that. And this way you can make the system perform better. 123 00:16:26.070 --> 00:16:30.210 William Cheng: Okay. But again, you know, when you try to do this. You got to be very careful because they're always caveats. 124 00:16:30.540 --> 00:16:38.790 William Cheng: So we're going to sort of talk about what are the things that you have to worry about over here now as over here says very remember that the access time equal to see con pro rated rotational latency. 125 00:16:39.270 --> 00:16:48.240 William Cheng: Plus the data transfer time. So if you split the data onto to disk over here you can sort of imagine that maybe when I perform the C Corp. They can actually seek in parallel. 126 00:16:48.570 --> 00:16:56.400 William Cheng: Okay, so therefore, in the end, we're going to end up at the same time, when I perform rotational latency and maybe on the average rotational latency all the two days. They're about the same. 127 00:16:56.790 --> 00:17:05.820 William Cheng: The data transfer time since I'm only transferring half the data for each it is. So in this case, the data transfer time will be cutting in half and so therefore your total this as as time is going to be reduced. 128 00:17:06.900 --> 00:17:14.280 William Cheng: OK. So again, this is one way to use, you know, multiple disk. You know, so, so you can actually improve the performance of your overall system. Yeah. 129 00:17:14.940 --> 00:17:26.790 William Cheng: So the question is that if this actually improve the performance of the system. Well, then I should have as many days as possible. You just the more risk. I have the more parallelism, I will get. So therefore, in this case the access time can be improved. Yeah. 130 00:17:28.110 --> 00:17:34.350 William Cheng: Alright, so, so again you need to, sort of, you know, sort of figure out you know all the details all the gotchas. You know when you select these on a system like that. Yeah. 131 00:17:34.740 --> 00:17:43.140 William Cheng: So one thing that you might want to do is that you want to make sure that you know when you have multiple this. You don't have to change the file system, right, because the file system, you know, why do you need to actually change the code. Yeah. 132 00:17:43.320 --> 00:17:53.190 William Cheng: So, so for example, if you're thinking about your fastball system call your first cell phone system called thing that is accessing one desk. Okay. In order for us not to change the fastball, Sir. Sir, we need to 133 00:17:53.940 --> 00:18:00.300 William Cheng: When we are using multiple this system, we need to provide the abstraction that the multiple this system is actually one giant desk. 134 00:18:01.140 --> 00:18:12.690 William Cheng: Okay, so therefore, in the Linux system. This layer inside of our system. As I mentioned before, the file system is complicated. There are many layers over here. So one of the possible layer, you can actually slip inside of our system is long as a logical balmy manager. 135 00:18:13.110 --> 00:18:21.510 William Cheng: Okay, so you can actually sit over here. I run right underneath the fastpass is that we have a Logical Volume Manager and the logical Raleigh manager is the one that manage multiple desk. 136 00:18:21.780 --> 00:18:27.810 William Cheng: Okay, so don't worry, you can actually see that the interface that the logical volley manager provided the file, file system, you know, 137 00:18:28.320 --> 00:18:34.470 William Cheng: The, the interface we make it look like there's only one giant desk. Okay, so this way, the fastball system doesn't have to change at all. 138 00:18:35.040 --> 00:18:39.480 William Cheng: Okay, so the first thing that there's one giant desk and the logical manner of only manager. 139 00:18:39.900 --> 00:18:46.980 William Cheng: The logical volley manager can decide whether you wanted to marry to make the two days are exactly the same. Or maybe you want to spend a data around 140 00:18:47.640 --> 00:18:58.140 William Cheng: OK, so the logical volume. Another manager is the one that has all the complexity. That's that the heavily all the complexity for managing a multi disk system. Yeah. 141 00:19:00.180 --> 00:19:08.340 William Cheng: Oh, whoops, went too fast. So some of the choices that the Logical Volume Manager can can make you guys handling multi DOES HE CAN ACTUALLY USE Mary 142 00:19:08.760 --> 00:19:16.620 William Cheng: So in this case, the file system right redundantly on both this right. So in this case, you know, when you perform a right so get your fast. Our system is performing a right to a 143 00:19:17.370 --> 00:19:29.220 William Cheng: Search for being a right to a virtual disk, the virtual. This has an interface of a Logical Volume Manager. The logical alarming manager is the one that has the issue right on both desk way for both of them to finish and now you can return from right 144 00:19:30.090 --> 00:19:35.040 William Cheng: OK. So again, using this one layer is that a file system, you can actually provide that kind of abstraction, they 145 00:19:35.640 --> 00:19:45.870 William Cheng: Will you perform the read operation over here, since these two tests are exactly the same. The Logical Volume Manager, as I should have got to be pretty clever. You don't have to refund both days you can actually use just read from one desk. 146 00:19:46.410 --> 00:19:50.370 William Cheng: Okay, why would you want to do that. OK. So again, if you think about, you know, if you have 147 00:19:50.790 --> 00:20:01.740 William Cheng: If you, if you only have one this graph for the logical long manager. Okay, if you try to refund the days there's going to be a dispute for you to actually send, send out that this request will be here are, you know, to, to, to, to this system. 148 00:20:02.310 --> 00:20:16.260 William Cheng: Okay, so in that case, you know, let's say the queue length appearing Cordell okay if you even lead to shoot you all these we request to the to disk, right, does it over here. Then in that case every, you know, every i o que. Are we here is gonna have a queue length of l over to right 149 00:20:17.280 --> 00:20:21.570 William Cheng: Okay, because we're gonna say hello to the left, is that have local right there. So this case, you know, 150 00:20:22.140 --> 00:20:25.740 William Cheng: The you know the the queue length is gonna be all over to. So how does that improve performance. 151 00:20:25.950 --> 00:20:38.070 William Cheng: Then if you try to issue a new request over here in the previous case, when there was only one disc in that case on the order, you know, typically what you have to do that, you have to wait for our requests in front of you to finish before you get to access to this. 152 00:20:38.490 --> 00:20:47.670 William Cheng: Okay. Now, since the queue over here is only half half the sizes before. So in this case, you only have to wait for out over to the assets time of all the, you know, 153 00:20:48.720 --> 00:20:51.900 William Cheng: All the colonel threat in front of you. And this way you can access the desk. 154 00:20:52.410 --> 00:20:59.160 William Cheng: Okay, so therefore you read performance is going to be twice as good, not only because your stripe. Yeah, you, you, you. 155 00:20:59.520 --> 00:21:10.020 William Cheng: Not only because you chop the fall into multiple parts put on different days. And now you know the wait time for this is going to be. It's going to be shortened because they are less they're less number of Colonel threats in front of you. 156 00:21:11.040 --> 00:21:15.690 William Cheng: Okay. So in this case, you know, the read operation, we're gonna we're going to end up performing much, much better. 157 00:21:16.020 --> 00:21:25.230 William Cheng: Okay. And I mentioned before, when you try to write with both this now you have to wait for both is or the right operation is going to be slow down a little bit, but the re operation over here. It's going to be twice as fast. 158 00:21:26.430 --> 00:21:29.730 William Cheng: Okay, so therefore, in this case, in the end, we're going to end up with much better performance. 159 00:21:30.240 --> 00:21:36.360 William Cheng: Than alright so that's one thing you can do, we can use Mary and the other the other choice over here. It's got its cost spanning right 160 00:21:36.750 --> 00:21:45.570 William Cheng: You know, we have multiple desk over here you will take your file and then you divide into multiple parts over here and you spread it amongst multiple desk right so this is called spanning are spreading 161 00:21:45.900 --> 00:21:56.880 William Cheng: Spreading it in a across multiple days and again when you try to retrieve the data since the data or smaller on each this. So in this case, you can actually retrieve them in parallel. So again, you could cut down the access time. Yeah. 162 00:21:59.010 --> 00:22:08.400 William Cheng: Alright so so that actually gets pretty complicated when you have a lot of disk over here. So again, you know, since you increase problems and maybe we're gonna have more desk. So in this case, you know, how many 163 00:22:09.060 --> 00:22:18.150 William Cheng: You know, we try to put it on multiple this. This is also known as striping okay well he tried to stripe data across it there. So, because it's like it's like painting data across the desk over here. 164 00:22:18.570 --> 00:22:26.550 William Cheng: So in this example, I have five disco be here when I put a file on to this, you know, on to these five days. I don't have to use all the five discs. 165 00:22:26.880 --> 00:22:35.550 William Cheng: OK, I can actually use only three of the desk over here. So this guy is what I would do is I will call this the stripe with equal to three. I'm going to strike that data across only the three desks. 166 00:22:35.880 --> 00:22:45.060 William Cheng: Okay, so this way. The first unit will go on this number one, the second you know go on this number two. The third you know go on this number three and the fourth unit will go back on that this number one first. Again, and then 167 00:22:45.600 --> 00:22:51.660 William Cheng: The fifth go back to December two and three. So basically I'm going to strike the data across only this one, two, and three. 168 00:22:53.010 --> 00:23:02.520 William Cheng: Okay, so why do I want to use the all the desk over here, right. So again, when you told me you know when we have more disk over here, you got to worry about whether this will fail or not, it did this fail over here and he's all my 169 00:23:02.760 --> 00:23:06.360 William Cheng: All my data over here on the three days. So in this case, I can actually recover all my data. 170 00:23:07.080 --> 00:23:16.410 William Cheng: Okay. So, therefore, you know, maybe there's a good reason why you don't want to strike that data across all the deaths that and also when you try. Well, well, you know, the more this that you have. And when you try to write 171 00:23:17.640 --> 00:23:20.910 William Cheng: A society that is mirroring. So I should mention that 172 00:23:22.080 --> 00:23:28.620 William Cheng: Yeah, so, so the point over here is that when you have a multiple this system. One of the parameter that you have to work with is what's going to be the stripe with 173 00:23:28.980 --> 00:23:38.070 William Cheng: Okay, when I tried to store a file. How many this gets involved when I tried to write it on to the desk there, and also over here. I say you read the first unit onto the first day. So what is going to be the unit. 174 00:23:38.670 --> 00:23:43.980 William Cheng: Okay, you know. So theoretically, theoretically, a stripe unit can be a single bit 175 00:23:44.430 --> 00:23:51.840 William Cheng: Okay, so what I would do is I will take a file. I'll put the first bit on this one and the second bit on this too. And third, on this three and then the fourth bit on this one. So in this case, 176 00:23:52.200 --> 00:23:59.670 William Cheng: You know, I will end up putting a bunch of bits on it is and that will pop all the bits together into this block. Okay. And then I read the entire block on the desk. 177 00:24:00.390 --> 00:24:11.280 William Cheng: Okay, so this way. In the end, I'm going to end up striking data again. Also on three days. So again, there are more things to consider, too. I do so. So we start the data over here one day at a time. That's called bit interweaving 178 00:24:11.550 --> 00:24:15.120 William Cheng: Okay, I'm gonna put one bid on one days and then I'm going to, I'm going to take the second bit 179 00:24:15.300 --> 00:24:23.520 William Cheng: And put it on the next this and that's why it's called bit into leaving so so your choices could be put into leading by into leaving sector into leaving blocking the levy 180 00:24:23.850 --> 00:24:26.070 William Cheng: There are actually many, many choices, right, what is the best way 181 00:24:26.730 --> 00:24:38.820 William Cheng: Okay. So as you can see, once you start having a multiple. This is them you can determine stripe where you can determine your entire leading factor. So the multiple. This is them is actually very, very difficult to actually sort of figure out what's the best thing to do. Yeah. 182 00:24:40.230 --> 00:24:44.820 William Cheng: All right, so you know so. So again, here's a sort of a quick summary over here. 183 00:24:45.090 --> 00:24:52.860 William Cheng: You know, the advantage of having a multiple. This is and especially with parallel this right, you're not doing mirroring over here the advantages that you can increase parallelism. 184 00:24:53.160 --> 00:25:02.550 William Cheng: And also you can reduce the access time because it does skew our smaller. Okay, so what is the downside over here, I will talk about all the plus side over here. The downside over here is her higher various 185 00:25:02.910 --> 00:25:07.740 William Cheng: Okay, remember, various the warm up to right. What is the various right. The goal is to tell you the amount of variation that you have 186 00:25:07.980 --> 00:25:15.090 William Cheng: So again, typically the way sort of thing about a variance is is there's a bell shaped curve. And there's a distribution like this right here is the average and 187 00:25:15.630 --> 00:25:25.830 William Cheng: The variation sort of tell you how much spread out the data is okay, the higher the various so if there's somebody has real Highbury and then it looks really flat, somebody has a low barrier, it will look really tall. 188 00:25:26.520 --> 00:25:32.820 William Cheng: Guys over here it says that when you have more this you're going to end up with a higher various. So in this case, when we plot, you know, there's 189 00:25:33.360 --> 00:25:40.320 William Cheng: Sort of the access time access time over here, you know, as a horizontal axis over here. We're going to see that the actual it's time 190 00:25:40.590 --> 00:25:43.440 William Cheng: You know among multiple visible here, they tend to be more spread out. 191 00:25:43.680 --> 00:25:52.380 William Cheng: Now, so why is that right, because when you go to the first things that we are maybe you end up spending spending more time doing six, where are you going to second disc over here. You may be spending. 192 00:25:52.800 --> 00:25:56.160 William Cheng: Less time doing seeds and that maybe they all have different you know 193 00:25:56.790 --> 00:26:02.880 William Cheng: Rotational latency and even a transfer time is going to be about same right all these other you know a variation 194 00:26:03.120 --> 00:26:05.820 William Cheng: In the, in the sea time rotational latency. 195 00:26:06.000 --> 00:26:13.740 William Cheng: Is going to make that you know so we go to all these four days maybe one of them is going to have access time right here. And the other one is going to have access right here and the other one's going to have access time right here. 196 00:26:13.920 --> 00:26:21.870 William Cheng: And then the other one is gonna have access time right here. So even though when you average them. The average is going to be exactly the same. Okay, but now the amount of variation over here is going to be bigger. 197 00:26:22.830 --> 00:26:29.160 William Cheng: Because in that case where you try to wait for all the, all for this to finish when this guy. You have to wait for the slowest is to finish. 198 00:26:29.910 --> 00:26:38.880 William Cheng: That. So we have four different design for different speeds, right, in this case, when you try to do is for things for things simultaneously in parallel, you have to wait for the slowest divide to get finished. 199 00:26:39.450 --> 00:26:43.290 William Cheng: Okay, so everybody. This guy's the higher the variance, the worst performances. 200 00:26:44.100 --> 00:26:48.840 William Cheng: Okay. So, therefore, you know, even though you know we have more disk over here. It looks at the average is going to be staying the same. 201 00:26:48.960 --> 00:26:55.590 William Cheng: But in the end, the average is not the only story. You also need to look at the various because India, your performance going to get killed by the various 202 00:26:56.160 --> 00:27:02.520 William Cheng: That. So again, in this class. We're not going to get too much into analysis of, you know, averages and variances and things like various 203 00:27:03.030 --> 00:27:10.950 William Cheng: But we take a more, you know, advanced, you know, operating system class or you know file system class are you going to sort of learn that various is typically something that killed a performance. 204 00:27:11.430 --> 00:27:19.620 William Cheng: Okay, so you have always you always have to watch out for large areas there and the mortars, you have the bigger variants you have. So in the data center. 205 00:27:20.460 --> 00:27:24.630 William Cheng: And then the data center actually have a loss of days, you're gonna have thousands of disk over here. So in this case, if you 206 00:27:25.560 --> 00:27:36.720 William Cheng: Yeah, if you have to wait for 1000 this line. In that case, your performance will be really, really bad, right. So that's one of the reason you don't want to stripe data across many, many this, because the more things that you use the worst performance that you got to get them. 207 00:27:38.160 --> 00:27:46.830 William Cheng: The second one over here says that, you know, actually the one piece that you have the system become less reliable. Okay, that sounds counterintuitive. Right, but later I'm going to sort of 208 00:27:47.880 --> 00:27:56.580 William Cheng: Sort of to explain what they are. The reason why is it that the more this you have, the less reliable system as well done. Talk about that. Pretty soon. Yeah. And number three, over here is that 209 00:27:56.910 --> 00:27:59.910 William Cheng: We're going to end up with a heterogeneous. This is them, you know, I mean, 210 00:28:00.810 --> 00:28:05.940 William Cheng: Well, what we when you start building your sister. Maybe you're going to buy all the states to be exactly the same test. 211 00:28:06.120 --> 00:28:15.870 William Cheng: And once one of them is dead, right. So let's say you run the system for two years and one of them is there and now you go to Amazon, you go to frys hurt by a new desk. What chances are the oldest over here will not be available. 212 00:28:16.320 --> 00:28:25.320 William Cheng: Okay, so therefore you're gonna buy a new test the new does have very different characteristic maybe the way that you know maybe speaker, maybe, you know, most like it's going to be bigger because it's because for the same amount of money. 213 00:28:25.560 --> 00:28:31.500 William Cheng: On later years, you can actually buy bigger desk right but in this case, you know, the way the data is Leon that this is completely different. 214 00:28:32.070 --> 00:28:40.290 William Cheng: So remember, you know, every, you know, I guess we'll pull off for the desk, the outer part of the desk and store more sector and the inner part that is happening. 215 00:28:40.950 --> 00:28:44.670 William Cheng: Less and less sector. So again, when you have these heterogeneous this 216 00:28:45.030 --> 00:28:54.240 William Cheng: Is going to sort of mess up the calculations that you'll file system. So, this guys are getting them to take you longer for you to do all these calculations. So in that case, on the average, in the end, you increase the various 217 00:28:54.690 --> 00:29:01.020 William Cheng: Okay, so we're going to end up with those. So, so the poor performance is that because you always have to wait for the slowest slowest device. Yeah. 218 00:29:02.340 --> 00:29:06.210 William Cheng: Alright, so I got all these things are sort of complicated things when you have multiple their system. Yeah. 219 00:29:07.500 --> 00:29:14.970 William Cheng: All right. Um, so, so go you know you know when you have multiple this. This is me to determine the stripe. You know, you need to determine on the stripe with 220 00:29:15.450 --> 00:29:23.370 William Cheng: So the question is, how do you actually determine that. Okay. So as it turns out, this is such a complicated issue, you know, over the years, sort of computer science actually developed, you know, 221 00:29:23.970 --> 00:29:28.920 William Cheng: The computer science actually develop a subfield cost storage system for people to study or these kinds of stuff. 222 00:29:29.430 --> 00:29:36.300 William Cheng: Okay. He was so complicated that lots of research or get into it and then you know they made it sort of try to study this to death in order for them to figure out what to do now. 223 00:29:37.050 --> 00:29:44.220 William Cheng: Are they there are some terms of your call the concurrency factor. So the concurrency factor is a number of Colonel threads that are now simultaneously. 224 00:29:44.430 --> 00:29:53.070 William Cheng: Accessing the desk. If you only have one one kernel, they're accessing all the days. In that case, the concurrency factors equal to one if you have multiple Colonel threads, you know, maybe one of them is 225 00:29:53.520 --> 00:29:57.600 William Cheng: sending data to one days and the other one is sending data to the other test. So in this case you can 226 00:29:58.560 --> 00:30:05.100 William Cheng: Have as many kernels breath as they are disk inside your system. Okay. So in this case, you're going to end up with a maximum concurrency factor. 227 00:30:05.610 --> 00:30:16.680 William Cheng: Okay, so, so people sort of trying to figure out, you know, what kind of concurrency factor is the optimal and then understanding kind of condition. How do you actually decide how to place it on the desk there. 228 00:30:17.220 --> 00:30:27.450 William Cheng: So here is one of their sort of the research result over here says is to say that the larger the concurrency factor, right, the more current alter that you use to access this is them, the less important striping is 229 00:30:28.350 --> 00:30:35.850 William Cheng: That. So as it turns out that, you know, the more Colonel third that you use to you to access all these this, then what you want to do that. You want to put all the data on one desk. 230 00:30:36.360 --> 00:30:44.160 William Cheng: Okay, you actually this is a counter intuitive today that you don't really want to strike the data across the desk. Okay. You want to put them, you know, you, you, you. 231 00:30:44.700 --> 00:30:54.210 William Cheng: You know, you basically you want to strive to be as large as possible. Okay, so, so, so the research has shown that in general performance is better when you have a, you know, 232 00:30:54.750 --> 00:31:02.520 William Cheng: The sort of concurrency factor is I use a larger striping unit. Okay, so we can use a simple example, sort of, sort of illustrate, you know, why is that the case. Yeah. 233 00:31:03.150 --> 00:31:07.530 William Cheng: So let's take a look at the example over here, right. The first kid over here is that we have one file like this. 234 00:31:08.400 --> 00:31:16.140 William Cheng: Now, so there are two choices. One is that you can put the fall on a single desk or you can actually, you know, take the fall and you divided into four parts. Each one of them. 235 00:31:16.410 --> 00:31:22.890 William Cheng: You're going to put on one of the disco here. So in this case, we're going to strike the data across your desk. Okay, so which way is better. 236 00:31:23.820 --> 00:31:27.990 William Cheng: Than so if you're thinking about the case. Oh, here's that lesson I will try to retrieve the entire file. 237 00:31:28.350 --> 00:31:33.600 William Cheng: When I tried to retrieve the entire photo be here if I go with the top approach over here. What do I need to pay, right. So again, 238 00:31:33.810 --> 00:31:38.070 William Cheng: That this as as time is seat time plus rotational agency, plus our data transfer time 239 00:31:38.310 --> 00:31:43.830 William Cheng: Okay. So in this case, you're going to end up paying for one seek or on the average once a week is what formula. Second, or something like that. 240 00:31:44.040 --> 00:31:49.290 William Cheng: And you also need to wait for one rotational latency and then you need to wait for the data transfer. Time for the entire file. 241 00:31:50.010 --> 00:31:56.220 William Cheng: Okay. What if you had the second case over here where the day is where where your file is stripe across exactly for this guy over here. 242 00:31:56.340 --> 00:32:08.190 William Cheng: So when you try to retrieve your data, it is possible that will you try to perform the Sikh operation, all these for this will seek simultaneously. So in that case, in the end, you, you basically you pay about approximately also one seat time 243 00:32:08.640 --> 00:32:14.190 William Cheng: Okay, and also when you perform, you know, rotational agency, it is possible that you know all these things will happen to have 244 00:32:14.730 --> 00:32:23.400 William Cheng: Approximately the same a little rotational agency. So in that case, you know, the rotational agency over here in the second case will be comparable to a rotation latency on the first case, right. 245 00:32:23.610 --> 00:32:30.030 William Cheng: But what about the data transfer time or the data transfer them over here is going to be four times faster. So, so again you could compare these two cases. 246 00:32:30.270 --> 00:32:43.800 William Cheng: The seat time is about the same rotational agency about to say. But these are transferred time over here is going to be four times faster. So the larger the file you have. Well, then the second case over here is that when you started across multiple this actually going to perform better. 247 00:32:45.210 --> 00:32:53.490 William Cheng: Okay, so you can see that you don't for this simple example. The second case over here appears to do better. But then you say, wait a second. What if I have more than one file. 248 00:32:54.390 --> 00:32:55.920 William Cheng: That will be carried by more than one file. 249 00:32:56.310 --> 00:33:04.980 William Cheng: One file 25354 or five I just said that the best thing to do over here. It's a stripe data across four days. So therefore I will do exactly the same thing for all these four files. Right. 250 00:33:05.130 --> 00:33:11.910 William Cheng: We're gonna take fall one over here striping across for this file to open your strapping across for this three and four. They all do exactly the same thing. 251 00:33:12.420 --> 00:33:21.630 William Cheng: Okay, so now if I want to retrieve all four files again if I want to retrieve only one file, then again the second case will be it will be faster, right. But what if I want to retreat or four files. 252 00:33:22.260 --> 00:33:27.720 William Cheng: Okay if I want to retrieve all four files on the top cases over here, they can actually perform seek operation in parallel. 253 00:33:27.900 --> 00:33:33.900 William Cheng: They can actually wait for rotation latency in parallel. And then the data transfer. Time for the pop case in the bottom case they're all exactly the same. 254 00:33:34.710 --> 00:33:37.560 William Cheng: Okay, so therefore the bottom case over here. How many seats. Do you have 255 00:33:37.980 --> 00:33:41.400 William Cheng: Okay I afford this over here every day is I need to perform for Sikhs 256 00:33:41.610 --> 00:33:50.580 William Cheng: And every day is going to be. I need to perform for rotational latency and then in the end the data transfer time I exactly the same, but in this case is clearly the first case over here, Pete, the second case. 257 00:33:50.790 --> 00:33:58.560 William Cheng: Because in the first case, you only on the average need to perform one seat and one rotation latency while at the bottom. Over here you do perform for seek for rotational agency. 258 00:33:59.190 --> 00:34:07.260 William Cheng: Okay, we mentioned before, you know, seek time over here. It doesn't really matter how big the fall is because in the end, the data transfer time is going to be exactly the same for these four files. Right. 259 00:34:07.980 --> 00:34:20.190 William Cheng: Right. So in this example offices are sort of showing you that, you know, if you can do things in parallel. If I can actually have for colonel. So after I try to retrieve data from all these for this in parallel, one in that case, the larger the striping unit, the better. 260 00:34:21.420 --> 00:34:28.680 William Cheng: OK. So again, you know, if you go with the previous example, it doesn't seem obvious, but now we take a look at this example you can see that. Yeah, you know, this actually makes sense. 261 00:34:29.040 --> 00:34:35.250 William Cheng: But what about the case in between if you want to only want to access to files or if you only want to access three file, then in that case. Why should you do 262 00:34:36.270 --> 00:34:48.840 William Cheng: OK. So again, this is for, you know, sort of more events, you know, computer science class that study, study for a story says them and they watch it. So I have more information about how to actually go about this. Okay. Being reality, this is actually very complicated. Okay. 263 00:34:50.280 --> 00:34:56.910 William Cheng: Alright. So anyways, I just want to mention that. So the next thing we'll do is we'll talk about is that, you know, we have more this copia. How come that you have more failure. 264 00:34:57.300 --> 00:35:01.950 William Cheng: Okay, so yeah. Well, I mentioned before that the the you know the systems reliability actually going to go down. 265 00:35:02.550 --> 00:35:10.110 William Cheng: So how do you actually even study this. OK. So the basic principle, we have a study a disk failure is to assume that the disk fail independently. 266 00:35:10.440 --> 00:35:12.720 William Cheng: Okay. Every day is they fell on their own that 267 00:35:13.110 --> 00:35:25.740 William Cheng: So this one is no as I ID. Okay. It stands for, you know, they are independent, and they're identically distributed. So the failure characteristic on every desk. They're independent from each other. So when one does fail. It doesn't affect the other desk. 268 00:35:26.430 --> 00:35:32.280 William Cheng: Okay. And also, you know, they are identically distributed their failure characteristic have exactly the same distribution. 269 00:35:32.640 --> 00:35:38.070 William Cheng: Okay, so what is the theater characteristic of a desk. Right. So one way you can sort of think about is if you have it. This right here. 270 00:35:38.790 --> 00:35:45.570 William Cheng: You know, sitting in a room sitting in a room. He's not a data center. Every time I walk into that room there's a probability that this is dead. 271 00:35:46.440 --> 00:35:54.870 William Cheng: Okay, so I'm going to call the probability of failure probability, right. So this failure probably over here is going to be a value add ok so the probability that this, this is dead is going to be f 272 00:35:55.140 --> 00:36:04.410 William Cheng: F is typically a very, very small number. So maybe F is on the order of 10 to the minus nine or something like that. Very small because chances are, every time you walk into the data center this this is like 273 00:36:05.760 --> 00:36:12.960 William Cheng: Okay, so in that case what do you have two desks right over here two days. So let's say that in order for your data center to be operational all that this has to be alive. 274 00:36:13.380 --> 00:36:17.340 William Cheng: Okay. So in this case, what is the probability that your that your data centers operational. 275 00:36:17.730 --> 00:36:27.060 William Cheng: Okay, so in this case both this has to be alive so so so in this case for the first is the probability that's alive is one minus the probability. So be one minus f 276 00:36:27.630 --> 00:36:36.990 William Cheng: Okay, the second one will be here also the probability is going to be one at minus f. And since they are independent. They have independent failure characteristic. So therefore, in this case, the probability will multiply 277 00:36:37.980 --> 00:36:43.560 William Cheng: Okay, so therefore in to the system, the probability that both disc operational is going to be one minus f times one minus f 278 00:36:43.980 --> 00:36:48.840 William Cheng: Okay, what are the three days system why in this case will be one minus f times one minus one. 279 00:36:49.560 --> 00:36:58.260 William Cheng: Times one minus f. So yeah, this is because they are independent. They have independent failure characteristic and they're all identically distributed with exactly the same failure rate. 280 00:36:59.250 --> 00:37:06.630 William Cheng: That so so I can keep adding more disk ID mode so you know data center, they will have thousands of disk over here. So in that case, if I have 281 00:37:06.810 --> 00:37:17.160 William Cheng: And this inside my in my data center. So in that case, what is the probability that all that this are up and running, right. So, in that case going to be one minus f to the power of an right because you multiply yourself. I am 282 00:37:18.480 --> 00:37:30.540 William Cheng: Okay, so what is wrong with this equation. Okay, this equation is the exponential equation, right, so we know what an exponential function look like why explanation why in the beginning is everything is pretty low. And all of a sudden is going to shoot to infinity. 283 00:37:31.710 --> 00:37:37.950 William Cheng: Okay, so in a data center. We have 1000 this chances are, every time you walk into the data center, you're going to find the dead disk. 284 00:37:39.360 --> 00:37:46.440 William Cheng: Okay, so if you're if you're doing the sender relies on every day is to be operational that anytime you walk in the data center your data center is completely dead. 285 00:37:46.980 --> 00:37:48.720 William Cheng: Okay, because there's always a debt disk. 286 00:37:49.200 --> 00:37:57.690 William Cheng: Well as a nutcase. What do we do so. So yeah, when you have more days in the end, you know, if you are, if you rely on all that is to be operational, even though this failure program is attend to the night 287 00:37:57.900 --> 00:38:03.600 William Cheng: But since this equation exponential at some point is going to be so big that your system is always going to be dead. 288 00:38:05.190 --> 00:38:09.330 William Cheng: Okay, so now you know we sort of need a solution for something like this. Yeah. 289 00:38:10.560 --> 00:38:16.830 William Cheng: Alright, so the solution is known as the races them, you can actually go to Amazon and try to look up rate and you can actually buy the system like that. 290 00:38:17.160 --> 00:38:24.960 William Cheng: Really stands for Redundant Array of Inexpensive this. Okay, so basically it's a disk array subhumans color disarray disk array, array. They're all the same thing. 291 00:38:25.380 --> 00:38:30.870 William Cheng: They are really of inexpensive there. So, you know, so these are really cheap. This over here buddy who put them together. 292 00:38:31.230 --> 00:38:37.980 William Cheng: They actually they can increase the reliability, even though I just mentioned mentioned before that the more this you have they become less reliable. 293 00:38:38.580 --> 00:38:46.290 William Cheng: Okay, so therefore, in this case, what was going to be a difference, right. The difference over here is that, you know, for a system like this, we're going to combine striping with Mary 294 00:38:46.830 --> 00:38:56.370 William Cheng: Be God because just doing striping going to end up with a terrible system, the system will be dead all the time. But if you come by striping with marrying. We're going to do a very, very carefully. So in this case, you're going to end up with a 295 00:38:56.700 --> 00:39:00.090 William Cheng: With a system that's much more reliable than a single this system. 296 00:39:01.200 --> 00:39:09.390 William Cheng: Now, so the racism was invented by IBM so IBM is the one that you know has the right Nokia hard drive. They were in the, you know, they actually they made a lot of money from the storage is them. 297 00:39:09.630 --> 00:39:14.580 William Cheng: So in the good old days in the ad or something like that. I made a lot of money and they beat it build these gigantic disk. 298 00:39:15.090 --> 00:39:21.060 William Cheng: They are, you know, very expensive they are. They also they also very high performance. They're also very reliable. 299 00:39:21.960 --> 00:39:27.090 William Cheng: Okay, so at that time, you know, there's some other company, they start building these tiny little disk drive over here. 300 00:39:27.300 --> 00:39:34.200 William Cheng: They are cheap. They're not very reliable but IBM people they. He says, Well, what if one day they figure out how to put all these this together. 301 00:39:34.440 --> 00:39:43.380 William Cheng: Build a system that's just as reliable as IBM or maybe even be more reliable than IBM System. So therefore, we need to study. You know how to actually do that. So, this way we can actually anticipate our competition. 302 00:39:43.800 --> 00:39:51.990 William Cheng: Okay, so therefore they start a project tried to sort of figure out how to combine striping with Mary, and it turns out they actually have some solution right the call them the racist them. 303 00:39:52.230 --> 00:39:58.440 William Cheng: And then they call it different implementation of your different levels of Ray. So there's a level one. Level two level three and 304 00:39:58.920 --> 00:40:05.220 William Cheng: Level four when they get a real before they say, oh, this system is pretty reliable, so therefore they're starting to sell the system. 305 00:40:05.640 --> 00:40:14.580 William Cheng: That has cheap. This. So, basically. So IBM also start manufacturing these motors and then they have their we have a very good yield some of them are actually 306 00:40:15.270 --> 00:40:24.060 William Cheng: Not very reliable. So, let's say, Hey, great. We're going to put all these things that are not very reliable. We're going to build that into a racist them. So this way, they can actually have good reliability characteristic 307 00:40:24.600 --> 00:40:34.290 William Cheng: That. So when they get a real level for we here they decide to sell them as soon as they start selling them researchers, researchers at UC Berkeley. They saw the system to say hey you know we 308 00:40:34.650 --> 00:40:42.900 William Cheng: Actually have a dishonest and immediately they see the problem with the system. Okay, they come up with a solution that solves that problem. And they call their system Bray level five 309 00:40:43.500 --> 00:40:47.250 William Cheng: From this point on, everybody thinks that UC Berkeley are the one that actually come up with a racist them. 310 00:40:47.700 --> 00:40:58.110 William Cheng: As it turns out, they didn't really come up with that it's actually IBM who invented the the raid level 1234 it just at Berkeley saw the bug inside the IBM product and they actually have a very, very clever fix for 311 00:40:59.130 --> 00:41:01.200 William Cheng: For for for for that particular problem. 312 00:41:02.010 --> 00:41:12.060 William Cheng: Yeah, so now we're going to sort of take a look at all these raid level to see, you know, what was the first real level and also how did you know what was what was wrong with really three level four and howdy 313 00:41:12.420 --> 00:41:23.070 William Cheng: Howdy howdy UC Berkeley actually fix the system now. Okay. So remember, one is a simple one just pure marrying jargon. Over here we have to disco be here. One is primary. The other one is back up. 314 00:41:23.550 --> 00:41:35.520 William Cheng: Okay, so it says again, well you perform right operation on to this, you have to run them in parallel, you have to wait for them to both of them to get done and then I will finish. Read it again. This is done at the level of Logical Volume Manager. So again what IBM did that. 315 00:41:35.910 --> 00:41:41.790 William Cheng: They don't have Linux. I don't call the Logical Volume Manager. But again, something inside of our system will have to do that that and also we performed 316 00:41:42.060 --> 00:41:51.840 William Cheng: The Reed operations, you will do load balancing. And you said 50% of your traffic to this desk and 50% of travel to the other days. So this way that this queue is going to be, you know, half the size as 317 00:41:52.620 --> 00:42:01.320 William Cheng: As in the previous case. So therefore, all the read Africa, the operation over here, there will be less Colonel said way farm. So therefore, all the read operations going to be twice as fast as before. 318 00:42:02.130 --> 00:42:03.750 William Cheng: That's all good. This is very, very significant. 319 00:42:04.230 --> 00:42:13.050 William Cheng: So this is one of the major advantage of re level, number one, yeah. So when this side over here. So for the primary. This is that over here. Would you would do that, you need to go buy, you buy a new desk. 320 00:42:13.440 --> 00:42:20.400 William Cheng: In the meantime you switch the workload over here to the backup desk. Okay. And then what you want to do that in order for you to make the system available. 321 00:42:21.120 --> 00:42:29.550 William Cheng: Okay, so what you need to do that, you need to install the new desk over here to replace the primary desk at the meantime you try to replace that while the system is running. So how do you actually do that. 322 00:42:29.910 --> 00:42:38.160 William Cheng: Okay, so what do you need to do that, you need to use a special Colonel flare that will actually rebuild this primary desk. Okay, so what the colonel side over here. What it will do is it will make a request. 323 00:42:38.370 --> 00:42:45.570 William Cheng: To the, to the backup this copy a at this blog from the backup discover here and then what it will do is it will actually add you know some 324 00:42:46.350 --> 00:42:54.540 William Cheng: Other requests over here to the primary to to the new disc over here and try to make sure that the new days eventually will be exactly the same as a backup this 325 00:42:55.470 --> 00:43:00.900 William Cheng: Okay, so the problem for doing something like that is like. Now we're going to end up with a new kernel thread that would generate additional workload. 326 00:43:01.080 --> 00:43:07.920 William Cheng: To the backup. There's another backup. This is going to be slower. So therefore, when you are doing repair the system is going to be running in a degraded mo. 327 00:43:08.010 --> 00:43:14.100 William Cheng: So in this case, your customer is not going to be very happy because the system is going to feel a little slower, but again, at least they can still continue to use the system. 328 00:43:14.820 --> 00:43:20.310 William Cheng: Okay, so with a system like this over here. Again, you're going to be a little more complicated. And then every time. Will you try to perform the right operation. 329 00:43:20.520 --> 00:43:27.060 William Cheng: You need to write to the most is when you're in the repair mall and you also need to generate additional, you know, additional traffic over here. 330 00:43:27.360 --> 00:43:31.590 William Cheng: To copy data from the back office to the primary desk again, you have to do this very, very carefully. 331 00:43:31.980 --> 00:43:41.160 William Cheng: Because the the data that you copied over here is actually currently being modify, you're going to make sure that you don't copy the data over you know you don't you don't copy some old data over new data. 332 00:43:41.880 --> 00:43:49.590 William Cheng: Yeah. Alright, so this is sort of a quick introduction to a level one. Level two over here. The idea here is that, you know, 333 00:43:50.910 --> 00:43:55.620 William Cheng: While we each other, you know, sort of by memory from Amazon or fries. 334 00:43:55.920 --> 00:44:04.680 William Cheng: You can buy two different kinds of memory, what is the kind of memory has error correction code on there and typically they're more expensive and the other one is the memory that has no error correction code. 335 00:44:05.580 --> 00:44:12.450 William Cheng: Okay, so, so, so, so, so what IBM decided to do is to use the same kind of technology or memory. I use it on desk that 336 00:44:13.140 --> 00:44:17.790 William Cheng: So let's take our talk a little bit about the sort of the memory technology right so so when you buy a 337 00:44:18.120 --> 00:44:26.790 William Cheng: bike, you know, what will you buy memory. For example, you buy four gigabytes of memory over here. Okay. So as it turns out, will you buy one of these is called a dim are called a sim 338 00:44:27.270 --> 00:44:32.010 William Cheng: Something like that. There's a bunch of chips on there. So maybe they're a chips on it. Right. Each one of them is half a gigabyte. 339 00:44:32.550 --> 00:44:39.510 William Cheng: Have you know have a giga gigabyte. Okay. So this guy's we use a lot of them, you're gonna end up with four gigabytes of memory. 340 00:44:40.080 --> 00:44:53.550 William Cheng: And then. So in this case, you know, what are the memory remembering that over here. Why, in that case you need to go buy a pi. Pi, Pi, Pi new memory. Okay, so for the memory with that error correction code that's going to be problematic. Now the other way is to do is, is the by about, you know, 341 00:44:54.780 --> 00:45:02.850 William Cheng: Is, is my memory call with the error correction code. So in that case, they will be additional chips on this particular board. Right. So there are these eight the eight steps over here. 342 00:45:03.120 --> 00:45:11.910 William Cheng: Eight of them got store data and they will be additional, you know, additional chips over here. So sometimes they will be referred as parody. Parody chips over here. 343 00:45:12.120 --> 00:45:19.830 William Cheng: Or error correction chips, so maybe I'll be here. I'm going to have, you know, for more of these chips over here. So this way when we try to store data pattern over here on 344 00:45:20.160 --> 00:45:28.140 William Cheng: You know, on to these HF, we also need to write additional bits on to these parody. Parody chips. OK, so this is obvious know as a check minutes 345 00:45:28.740 --> 00:45:41.790 William Cheng: Okay, what happened is that when one of the memory chip. I'll be here go bad. Okay. What you can do that. You can actually read all the data from the check to the check chips over here from the parody chips over here and reconstruct the data that are missing on the original the 346 00:45:43.260 --> 00:45:49.560 William Cheng: Original chip. So this way, your memory will continue to operate. OK. So again, you can see that this membership is 347 00:45:50.190 --> 00:45:56.340 William Cheng: This memory boy is going to be much more expensive than the other way because the original one over here only has a chip and now this one has taught chips. 348 00:45:56.970 --> 00:46:03.180 William Cheng: Okay, so, so the cost over here will be or big A little more. So what I did is I. We're going to do the same thing with it. This is them. 349 00:46:03.420 --> 00:46:12.120 William Cheng: So in this example, we're going to store data on these desk. How many are there 1-234-567-8910 10 data discovery here. So in this case, 350 00:46:12.360 --> 00:46:26.070 William Cheng: The parody this go up here is going to have four of them. Alright, so again, you're going to use error correction code. So I guess the error correction code, you know, I guess it sort of the Hammond code or something like that. So, again there W courses you can take to learn about all the 351 00:46:27.600 --> 00:46:33.630 William Cheng: All the coding theory that will tell you how to actually how many this, you need in order for you to construct missing data. 352 00:46:34.020 --> 00:46:42.060 William Cheng: Okay. So this guy's when he tried to write data across all these 10 disk over here. You cannot, you cannot use error correction code over here to find out what pattern, you will write to the 353 00:46:42.870 --> 00:46:50.670 William Cheng: To the check this guy over here. So this way when one of the this side over here. All you have to do is to read data from the other day. You can reconstruct all the data in the 354 00:46:51.300 --> 00:47:00.540 William Cheng: In the, in the original data desk. Okay, so, so, IBM called this re level two. And pretty soon they realize that real Level two is actually pretty silly. 355 00:47:00.990 --> 00:47:06.300 William Cheng: Okay. The reason for that is that the disk or not like memory. Okay, so what, what's the main difference over here, right. 356 00:47:06.570 --> 00:47:17.550 William Cheng: The problem with memory is that when one of the chip or either one or the chip goes bad over here. It's not just the entire chip die, only one of the memory location over here. The only one of the memory location over here is that 357 00:47:18.210 --> 00:47:25.080 William Cheng: OK. So in this case, one of the memory location of this chip is there and you don't know which location that is okay. So, therefore, we use the ECC 358 00:47:25.380 --> 00:47:35.010 William Cheng: You know ECC chips over here to correct here. So when one of the memory location over here is bad, you will actually read all the data all the time. And this way you can add to fix the fix error on the fly. 359 00:47:35.850 --> 00:47:44.100 William Cheng: Okay, and later on when another chip that over here. Hopefully it will it will go back at a different a different memory location, you're going to end up with all these ship their locations all over the place. 360 00:47:44.460 --> 00:47:55.590 William Cheng: So, but we're still using the same you know parody chips over here, you can actually you'll be able to reconstruct all the data. Okay, so that this doesn't work like that when a decide that this action or races have to say I'm dead. 361 00:47:56.760 --> 00:48:03.720 William Cheng: Okay, so therefore there's no doubt, which this is there one for memory over here, you actually, you don't know which memories that I also you don't know which memory location is dead. 362 00:48:04.920 --> 00:48:16.260 William Cheng: Okay, so, so, so for the desk over here. That is why she raises them. They're actually this controller will say this. This is dead. So in that case, all we have to do is that we actually have to, we can actually use a very, very simple parody ski. 363 00:48:16.650 --> 00:48:24.480 William Cheng: That. So we're level three over here is to use a single parody. There's no matter how many data, this you have then in this case, you only want to use one parody desk. 364 00:48:24.750 --> 00:48:35.790 William Cheng: That's what you would do is that you need to determine whether using even parody. Parody so over here we're going to use an example to use all parody. That means that when you add up all the bills over here, you're going to end up with an odd number. 365 00:48:36.300 --> 00:48:43.770 William Cheng: So for example, if the data pattern that I tried to right over here across all the this is going to be 0110001011 366 00:48:44.160 --> 00:48:48.180 William Cheng: Okay, so what should go on to the parody death. Right. So again, if you add them all up, it's going to be an odd number. 367 00:48:48.660 --> 00:48:57.420 William Cheng: So right now we have one, two, this is 034 or five. So, and this guy is going to equal to five. So therefore, on the parody there's gonna be, I'm gonna write a letter right zero 368 00:48:57.750 --> 00:49:00.720 William Cheng: So in this case, if I add up all the bits. I'm gonna with you. 369 00:49:01.350 --> 00:49:06.630 William Cheng: I'm going to end up with a number now. So in this case, if this number two, number three diet over here. 370 00:49:06.870 --> 00:49:19.500 William Cheng: Guys, oh yeah, I will retrieve data from the parody. This I will add up all the bits over here 0100010110 that would be equal to four. So, therefore, I know that on the desk desk over here, this must be equal to one. 371 00:49:20.370 --> 00:49:29.400 William Cheng: Okay, so I could use the same T to compute all the faith on the dead. So this way, even when one, this is totally dead. I will be able to reconstruct all data, right, so this is called a level three. 372 00:49:29.880 --> 00:49:34.350 William Cheng: So this guy, the overhead over here is going to be much better than the previous case right between the previous guys over here. 373 00:49:34.560 --> 00:49:40.230 William Cheng: If you have 10 data. This, in this case the overheads gonna be 40% because you are required to use for more desks. 374 00:49:40.410 --> 00:49:49.110 William Cheng: There. So in real number three over here. The overheads, much, much more reasonable. No matter how many data, this you have the party does over here. Always be exactly what 375 00:49:50.010 --> 00:49:56.040 William Cheng: That alright so that's right. Number three. So, pretty soon also IBM sort of realized that, you know, fit into believing that you really 376 00:49:56.280 --> 00:50:04.200 William Cheng: You know, really silly, right, because when you try to strike data across all these this, why would you actually use fit into leaving. Right. So maybe the reasonable thing to do is to to block into leaving 377 00:50:04.590 --> 00:50:11.400 William Cheng: Okay, so what do you do that you will put one block of it on the first day and then one block of data on the second this etc. So in this case, this is no as raid level for 378 00:50:11.580 --> 00:50:17.610 William Cheng: I'm going to put one block of data here one blogger that I will be here. So in the end, when I put all the data all parts of data in all these 379 00:50:17.880 --> 00:50:24.090 William Cheng: All these 10 disk over here, what I can do, I can compare the parody on the last block, because it is guys. How do you compare parody. 380 00:50:24.720 --> 00:50:31.830 William Cheng: Well, so good when you try to compute power parity. You know I say add up all the numbers over here and try to sort of figure out whether they're they're even or up 381 00:50:32.190 --> 00:50:36.810 William Cheng: Another operator, you can use is the exclusive OR operator our Expo operator. 382 00:50:37.020 --> 00:50:47.130 William Cheng: OK, so R Us exclusive want to exclude for all the bits together. If the Indiana is equal to one, that means that the sum is equal to one if you do, you're going to end up with zero. That means that the sound equal to zero. 383 00:50:47.610 --> 00:50:57.900 William Cheng: Well, so you can do that. You got to take all these blocks together and you do a bitwise exclusive or from one block to the other. So good zero over here, exclusive with all the other busier over here, you're going to end up with 384 00:50:58.140 --> 00:51:00.390 William Cheng: The final day to write to the parody bad for business. 385 00:51:00.750 --> 00:51:06.300 William Cheng: Okay, and then you do exactly the same thing for the big one. Take one of your exclusive war with all the other day one and all their blog. 386 00:51:06.510 --> 00:51:13.170 William Cheng: And that will give you the one that goes to parody, blah. If you do this or the entire blog in da going to end up with a data gone to the parody Park. 387 00:51:13.680 --> 00:51:21.750 William Cheng: Okay, so you you will do that if you're using even parody, because if you add up all the bits together, you're going to end up with all zeros. Okay, so if you want to use our parody. 388 00:51:22.410 --> 00:51:28.620 William Cheng: Once your computer parody. The way I mentioned before, by excusable them together. All you have to do is flip all the bears and now we're going to end up with our parenting. 389 00:51:30.270 --> 00:51:40.590 William Cheng: Okay, so this way. It's much more reasonable because you will do plug into leaving in case one of the this blog dot over here, what you will do is that you will retrieve all the other blogs from all the other this and also go through the parody. This 390 00:51:40.800 --> 00:51:53.610 William Cheng: Real you know I retreated. Then over here. So again, you will excuse for all of them together and you flip all the best. You're going to get, you're going to get exactly the data. The data on the missing. Oh, you're gonna get exactly the data on the desk on the desk. 391 00:51:54.780 --> 00:52:03.780 William Cheng: Okay so IBM was very happy with this particular organization and they start selling this know the rate for system over here and as soon as the Berkeley people see it. They see a very serious problem. 392 00:52:04.170 --> 00:52:13.200 William Cheng: Okay, what's gonna be the serious problem over here. Right. Okay. So let's say I want to modify data on done this pretty good as far as a weapon to use the colonel through it right data over here on the did this. 393 00:52:13.620 --> 00:52:19.350 William Cheng: So since I'm using a buffer cache, you know, most of the time. All the other data inside of buffer cache. 394 00:52:19.710 --> 00:52:25.710 William Cheng: Okay, so in this case I modified. One of the this bug over here so that this was his dirty and this is funny to go on to this desk. 395 00:52:26.370 --> 00:52:34.770 William Cheng: Job. So in this case, but you know I need to write data onto this this, but also the parody will change I since I have all the other day spa. I can do the 396 00:52:34.950 --> 00:52:41.340 William Cheng: Computation using the buffer cache over here to compute what does the parody over here for your 44444 for the parody desk. 397 00:52:41.670 --> 00:52:47.400 William Cheng: So in this case, in order for me to write this is actually have to write it to this, the data discovery here and the parody that's 398 00:52:48.000 --> 00:52:52.020 William Cheng: Okay. In the meantime, another Colonel sent over here trying to modify this data blog right here. 399 00:52:52.350 --> 00:53:00.510 William Cheng: Okay, so again, that other thread need to modify this data blog over here also need to modify the parody that there's over here. So the initial record this, this, I need to read it the other day over here. 400 00:53:00.720 --> 00:53:11.010 William Cheng: What the third Colonel says modifying this data right here on this other days. So it's modifying the state over here. So also, you need to modify the the the parody disco here because what's going to be the problem. 401 00:53:11.940 --> 00:53:16.410 William Cheng: There. So let's say that I spread the data pretty well all these disk over here so that 402 00:53:16.650 --> 00:53:24.930 William Cheng: You know, so all the data access over here. I'm pretty even on the desk. So if I look at the dis que in front of all these data discovery here, they're all about the same size. 403 00:53:25.440 --> 00:53:30.030 William Cheng: Okay, so in this case I'm going to end up minimizing the variance, because all the queue length over here about the same. 404 00:53:30.210 --> 00:53:36.270 William Cheng: But what about the discount on the parody desk right so if the data says over here. If I have tend to skip over here. 405 00:53:36.480 --> 00:53:42.360 William Cheng: The queue size of the parody over here. It's going to be 10 times as long as all the other desktop here, right, because every time when you try to 406 00:53:42.690 --> 00:53:46.410 William Cheng: Write with one. Did you also need to send the same traffic to the parody desk. 407 00:53:47.220 --> 00:53:54.570 William Cheng: Okay. So now every right over here need to write the two days. One is going to have a regular response time. The other one's going to have 10 times word response time 408 00:53:54.720 --> 00:53:57.540 William Cheng: So in this case, the response time is going to be always be the worst case. 409 00:53:57.720 --> 00:54:05.400 William Cheng: So in this case, all your disk operation. Nope. Here it's going to be 10 times slower, you can have 10 data desk right if you have 100 data. This will be here is going to be 100 time solar 410 00:54:05.550 --> 00:54:09.900 William Cheng: So therefore, Berkeley said this is horrible. This is not usable so therefore we should use this system like this. 411 00:54:10.620 --> 00:54:18.570 William Cheng: Yeah. So in this case, what is going to be the solution for, you know, for this problem because the Berkeley people actually come up with a very, very clever solution they call the ray level five 412 00:54:19.080 --> 00:54:26.010 William Cheng: Guys, in this case the data. The data. The data blocks and the parody blogs, they are evenly spread among all the discs. 413 00:54:26.430 --> 00:54:33.630 William Cheng: Guys. So, for example, one thing I can do is I can write block number zero here into this and block number wanted this this part number to over here, go to this. 414 00:54:33.960 --> 00:54:39.390 William Cheng: And block number three onto this as. And then what I will do is I will compute a parody blog for 012 and three 415 00:54:39.810 --> 00:54:47.100 William Cheng: Okay. And then while I will write that information on to the fourth is so over here. This is parody from zero to three of your go to the fourth. So 416 00:54:47.760 --> 00:54:56.700 William Cheng: Okay, so in this case. Okay. Well, one of the dis thought over here. I need to read data from the zoo at this though. The second is the third this and apparently does. And now I can compute all the data. There are laws over here. 417 00:54:57.360 --> 00:55:08.280 William Cheng: Oh yeah, sorry, my father's bigger. I'm going to continue to strike that data across all these days. So Brock number four goes here at block number five, six and seven goes here and the parody for four to seven of those are nice blog of. Yep. 418 00:55:08.790 --> 00:55:19.110 William Cheng: Okay and block number eight. We'll go here block number 910 11 we'll go here and the parody from a through 11 is going to go right here right block number 1213 1415 419 00:55:19.350 --> 00:55:29.130 William Cheng: And the party for 12 to 15 is going to go here and a 1617. So do you see what's going on right here. Okay. The parody bronze over here is going to go to every discs. 420 00:55:30.090 --> 00:55:37.140 William Cheng: Okay. So in the end, whenever you've tried to perform or write operation you're going to generate traffic into one day, that is, and also on one parody desk. 421 00:55:37.320 --> 00:55:45.870 William Cheng: But in this case, all the rights to all the parody. This is going to be evenly distributed because there's no pair of it is, and the parody plausibly are evenly distributed among all the discs. 422 00:55:47.010 --> 00:55:54.480 William Cheng: That. So this way. Will you look at it this Q over here you will see that this this Q No matter which this, you go, you know, they all have about the same queue length. 423 00:55:55.500 --> 00:56:03.420 William Cheng: OK. So again, this is a very, very clever fix over here to solve this problem. So, again, in this case, your file system has never get a little more complicated, right, because it for you know you to determine 424 00:56:03.600 --> 00:56:13.050 William Cheng: How many data do I put on one days before I write a parody blah, and then when you try to sort of perform the repair operation or will you try to wonder this go dead over here. You need to do a little more 425 00:56:13.380 --> 00:56:19.740 William Cheng: Mobile math in order for you to figure out where the pointer. Yeah, where the party is so you can actually access data on the parody desk. 426 00:56:20.370 --> 00:56:31.890 William Cheng: Okay, so again, Berkeley was very successful doing this. So as it turns out, even today, when you go to Amazon where you go to frys, when you try to buy a really desk, they will either sell you a raid level one or a level five 427 00:56:32.370 --> 00:56:37.020 William Cheng: Okay, because when you see that there's really no point you're selling if this were a level two, three or four that 428 00:56:38.460 --> 00:56:46.110 William Cheng: Is over here, this size of a compare different the reliable for a lower level five. So the basic summaries over here is that we compare these two 429 00:56:46.320 --> 00:56:59.490 William Cheng: Either they are about the same, or a fire has better characterization rate for so therefore there's no point using Ray for anymore. OK. So again, you know, if you want to use a racist them other than one people will use the Berkeley solution. Yeah. 430 00:57:01.200 --> 00:57:06.420 William Cheng: Oh, so this is actually a good point to break. So I guess next part over here. It's going to be 431 00:57:06.990 --> 00:57:14.100 William Cheng: Beyond right over here. Okay, so I just want to mention that, you know, after rate over here the storage system research actually gone crazy because people try to sort of 432 00:57:14.700 --> 00:57:18.540 William Cheng: Find different ways to actually, you know, they'll find different ways with the 433 00:57:19.260 --> 00:57:26.820 William Cheng: So, so I get the perfect solution. There are also some problem you certain kind of failure modes over here. So they will try to fix it. They come up with a level six or a level seven 434 00:57:27.210 --> 00:57:33.600 William Cheng: Some of the rays over here will actually go really crazy really leveled zero plus plus y which is different from level one plus zero. 435 00:57:34.050 --> 00:57:39.240 William Cheng: So, so all these things went crazy. And then the computer science sort of developed this new Southfield Noah storage system. 436 00:57:39.810 --> 00:57:46.290 William Cheng: Because again, you know, even today, when you're using storage devices that are network attached storage device they all belong to part of the 437 00:57:46.920 --> 00:57:59.760 William Cheng: Sources and research that so again. Now, the system is very complicated. So again, this is the introductory class. We already going to introduce the basic idea race to you. And then, you know, leave the rest of our more advanced, you know, pass the class. Yes. 438 00:58:01.440 --> 00:58:04.080 William Cheng: Alright, so I'm going to stop right here.