The Google File System - Paper Explained

Ғылым және технология

System Design for SDE-2 and above: arpitbhayani.me/masterclass
System Design for Beginners: arpitbhayani.me/sys-design
Redis Internals: arpitbhayani.me/redis
Build Your Own Redis / DNS / BitTorrent / SQLite - with CodeCrafters.
Sign up and get 40% off - app.codecrafters.io/join?via=...
In the video, I dissected the Google File System research paper from 2003, highlighting its key aspects. The system is designed to run on commodity hardware, making it scalable and fault-tolerant. Google optimized for storing large files, focusing on append operations rather than overwrites. They also emphasized fault detection, fault tolerance, and automated recovery. The system divided files into chunks for parallelism, load balancing, fault tolerance, and easy storage allocation. Replication factor of 3 ensured fault tolerance, with a master node managing metadata.
Recommended videos and playlists
If you liked this video, you will find the following videos and playlists helpful
System Design: • PostgreSQL connection ...
Designing Microservices: • Advantages of adopting...
Database Engineering: • How nested loop, hash,...
Concurrency In-depth: • How to write efficient...
Research paper dissections: • The Google File System...
Outage Dissections: • Dissecting GitHub Outa...
Hash Table Internals: • Internal Structure of ...
Bittorrent Internals: • Introduction to BitTor...
Things you will find amusing
Knowledge Base: arpitbhayani.me/knowledge-base
Bookshelf: arpitbhayani.me/bookshelf
Papershelf: arpitbhayani.me/papershelf
Other socials
I keep writing and sharing my practical experience and learnings every day, so if you resonate then follow along. I keep it no fluff.
LinkedIn: / arpitbhayani
Twitter: / arpit_bhayani
Weekly Newsletter: arpit.substack.com
Thank you for watching and supporting! it means a ton.
I am on a mission to bring out the best engineering stories from around the world and make you all fall in
love with engineering. If you resonate with this then follow along, I always keep it no-fluff.

Пікірлер: 63

  • @AsliEngineering
    @AsliEngineering4 ай бұрын

    I hope you loved the video. if you do, do share a word on social media. It would me the world to me ❤

  • @lunadas1217
    @lunadas12174 ай бұрын

    I can't express my gratitude adequately for creating such excellent content

  • @BhaswantInguva
    @BhaswantInguva9 күн бұрын

    Great explanation. Thank you! Of the multiple times I felt "wow", two places are 1. How heartbeat is efficiently used and avoided persistence of chunk to location mapping. 2. How the write failures are handled with 2 step acks from primary replica.

  • @pranjalagnihotri6072
    @pranjalagnihotri60724 ай бұрын

    It's 4 in the morning and just completed watching this amazing amazing video on GFS, really amazing decisions they took in 2003. Got few questions but first I will try to look-up on my own. Hatsoff to your teaching skills 🤩

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    Thank you Pranjal :)

  • @devdevjb
    @devdevjb4 ай бұрын

    More paper reviews! I like how you explain

  • @JardaniJovonovich192
    @JardaniJovonovich1924 ай бұрын

    Great video. The Primary replica concept reminds me of the leader replica concept of a Kafka topic across brokers.

  • @RahulPal-iz4ev
    @RahulPal-iz4ev4 ай бұрын

    Amazing explanation!! Loved it!!

  • @ntnmnk2009
    @ntnmnk20094 ай бұрын

    Nice explanation! This was covered in the fourth year and Hadoop is inspired by GFS and that's when yahoo open sourced and big data reveloution started

  • @ItsMeIshir
    @ItsMeIshir4 ай бұрын

    Nailed it.. Thank you very much for the detailed video Arpit. Stay curious :)

  • @RamBhakt__
    @RamBhakt__4 ай бұрын

    Wow a great way to explain .. Thanks ..

  • @mritunjayyadav3788
    @mritunjayyadav37884 ай бұрын

    when you dropped this gem! I was also reading GFS white paper and came here to watch video after completing the white paper . Even though i have understood the paper , watching your video made me fall in love with GFS even more 😊

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    Thanks man! means a ton ✨

  • @saivivekvalluru1369
    @saivivekvalluru13694 ай бұрын

    Great video loved it

  • @cyriacgc
    @cyriacgc10 күн бұрын

    I want someone to say to me the way Arpit says "such a beautiful software" 😊 Jokes apart, what a video! I'm really glad that i stumbled on this. Thank you

  • @AsliEngineering

    @AsliEngineering

    10 күн бұрын

    Hahhaha 😅

  • @maheshgvp7735
    @maheshgvp77354 ай бұрын

    This has been awesome so far, I am half way through the video. If this is not too much to ask for, it would be great if the notes that is presented can be shared 🙏

  • @suryanshsingh6906
    @suryanshsingh690610 күн бұрын

    Just wow ❤

  • @suhanijain5026
    @suhanijain50262 ай бұрын

    this is great would love to see paper on big table as well

  • @pawansarma8730
    @pawansarma87304 ай бұрын

    Very well explained and rly helped me understand… please do Big Table next😃

  • @akashshirale1927
    @akashshirale19272 ай бұрын

    Loved this video and also implemented a hello world of GFS, can you also make a similar video of Kafka paper..

  • @AyushBakshi
    @AyushBakshi4 ай бұрын

    Good video. Not really into file management systems or computer science (I'm a 3d artist) but still watched.

  • @dinesh.p8642
    @dinesh.p86424 ай бұрын

    Dhanyavaad ji.

  • @ritikjain4811
    @ritikjain48114 ай бұрын

    Would love to have a similar walkthrough for aurora db

  • @arnabbir001
    @arnabbir0012 ай бұрын

    As a sequel, can you please add another video on the whitepaper MapReduce: Simplified Data Processing on Large Clusters? Also will it be possible to have a video covering Colossus? I know there are not enough resources available for that.

  • @kailash._11.
    @kailash._11.4 ай бұрын

    Arpit, as you mentioned that the GFS Client will directly talk with the Chunk Servers to get particular chunk data and the ACL is maintained on the master server. Does it means that there is no access rights checking on the chunk servers? Can anyone with the details (meta data obtained from master server) of the chunk server access the data in that particular chunk server?

  • @39_ganesh_ghodke98
    @39_ganesh_ghodke982 ай бұрын

    Your teaching skills are great👍

  • @AsliEngineering

    @AsliEngineering

    2 ай бұрын

    Thanks Ganesh!

  • @anweshchatterjee9882
    @anweshchatterjee98824 ай бұрын

    Do HDFS has same primary replication scenario and how to set the primary replication for a file ?

  • @tell5g
    @tell5g4 ай бұрын

    Wat so special about doesn't torrent work same way? It's just looks like google renaming bit client to Google file system.

  • @SumitGouthaman
    @SumitGouthaman4 ай бұрын

    Great video! Really made me want to go back and read the source paper 😃 Around 1:13 :00, I was slightly confused as to how the master detects corruption of chunks on a specific chunk server (doesn’t seem scalable for the master to keep checking the checksums regularly). After skimming the paper it seems the master is informed about potential corruption by the chunkserver with the corrupted chunk rather than the master detecting it proactively.

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    Thank you 🙌

  • @dinesh.p8642
    @dinesh.p86424 ай бұрын

    Where can i find the notes thats being displayed in the video?

  • @apratimgupta1570
    @apratimgupta15704 ай бұрын

    Hey sir, in case of hot spots, won't writes be further affected?

  • @nishantketu2040
    @nishantketu20404 ай бұрын

    👍👍

  • @pushkarratnaparkhi2205
    @pushkarratnaparkhi22054 ай бұрын

    💯💯👍🏻👍🏻

  • @sanjeevrajora7335
    @sanjeevrajora73353 ай бұрын

    Thanks for making such amazing content big fan of your work ❤, just a small doubt if i am not missing 1:01 :19 you said that client have to write to each replica itself , don't you think it would be better if client only write to primary replica and from there its primary replica duty to write it to all secondary replicas, it will help in 2 ways 1) client don't have to send the confirmation that write to all replicas is completed , all these responsibility can be encapsulated to the primary replica 2) network call overhead to write from client to each replica can be reduce by primary server as they can use very high bandwidth connectivity of the Google also if replicas are near or in same physical zone than we can save network overhead to pass the data across hundreds of miles waiting for your response

  • @koteshwarraomaripudi1080

    @koteshwarraomaripudi1080

    3 ай бұрын

    Kafka does the same thing what u are suggesting. My best guess for gfs to take this call would be based on the network bandwidth availability in data centers in 2003.

  • @davendrasingh518
    @davendrasingh5184 ай бұрын

    How do we handle atomic or contentious operation here. ? two client writing same chunks are they going to acquire lock on LRU ?

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    this is not a transactional system like a database. so contentions are not common. But in case there are then pessimistic locking is a simple solution.

  • @ishanjain9098
    @ishanjain90984 ай бұрын

    This was a paper I read earlier then you hehe 😁

  • @tell5g
    @tell5g4 ай бұрын

    Doesn't torrent work the same way, I didn't find any difference other than renaming bit clients to Google file system

  • @parth2439
    @parth24394 ай бұрын

    Gold Content , so nice presentation , handwriting ,Thanks for all the efforts 🫶🫡

  • @growwithriu
    @growwithriu25 күн бұрын

    Writes: 48:05

  • @sv_n
    @sv_n4 ай бұрын

    Hi Arpit, would it be feasible to implement this in Golang? What are your thoughts?

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    Yes. totally. pretty easy to implement a quick prototype.

  • @akshay_7797
    @akshay_77974 ай бұрын

    can you share these notes?

  • @asranand7
    @asranand74 ай бұрын

    Great discussion Arpit, please make more such long videos. I have one question from the discussion. Why is the client sending the same write to all the chunk servers ? And why not just to the primary replica and then the primary replica sending the write to other replicas ? (Similar to Kafka, where the leader broker send the writes to other brokers and waits for the ack from the replica brokers)

  • @kuldeepranjan8703

    @kuldeepranjan8703

    4 ай бұрын

    Exactly, Why client is waiting acknowledgement from the majority, isn't primary acknowledgement is enough, system will take care of the replication then.

  • @shankarbanerjee8746

    @shankarbanerjee8746

    4 ай бұрын

    Maybe to protect the primary replica's bandwidth. Primary replica sending the writes to the other 2 will eat up its bandwidth, instead they chose to preserve it and use up the client's bandwidth. That's my hunch

  • @SanjayJayasankar

    @SanjayJayasankar

    4 ай бұрын

    Same thought.. The bandwidth would often be faster between chunk servers.

  • @hiteshbitscs

    @hiteshbitscs

    4 ай бұрын

    That's great question. My take is client writes to primary & then primary writes to at least half of the replica. Let say if Replication factor = 3 then it waits for at least one more replica to give ACK. Hence total 2 writes are confimed. Then they update master and return to the client. so this ensures at least N / 2 replicas are consistent in the system. Also my take is rather than saving chunk server's bandwidth as writes to client to server is very unreliable and need to cross entire internet. Hence it is slow. mostly I believe chunk server would internally copy the data and ensures consistency. Client -> broadcast to all replica .. I AM NOT IN FAVOUR.

  • @sagar-tt4ub
    @sagar-tt4ub4 ай бұрын

    How do you make the diagrams?

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    they are all hand drawn n my GoodNotes app.

  • @linc008
    @linc0084 ай бұрын

    What font are you using in the video?

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    These are handwritten notes. But glad you thought it was a font.

  • @linc008

    @linc008

    4 ай бұрын

    You have very good looking hand writing!@@AsliEngineering

  • @ishanjain9098
    @ishanjain90984 ай бұрын

    Will watch it again after completing my ongoing assignment 🫶🫡

  • @GauravSinghvi-yu8jd
    @GauravSinghvi-yu8jd4 ай бұрын

    I am in final year of undergrad, have never read anything in system design, will i be able to understand this, please be honest sir

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    Go through it and find out. If I were you and in college, I would have gone through such videos more often than not. Do not doubt your abilities before even trying. To be honest, being a student you will be able to learn quicker than the experienced folks. Do not let others tell you what you can learn and what you cannot.

  • @GauravSinghvi-yu8jd

    @GauravSinghvi-yu8jd

    4 ай бұрын

    @@AsliEngineering Thanks a lot sir for your answer, would surely go by your advice

  • @niwanshumaheshwari4534
    @niwanshumaheshwari45344 ай бұрын

    Thank you for this awesome video. Here master is working more like a coordinator node, isn't it? the zookeeper also does the same thing, right? Handle the information about which replica is residing on which node. I think we are using here multi-master replication, every replica is acting like a master for one chunk and others acting like a follower.

  • @AyushBakshi
    @AyushBakshi4 ай бұрын

    Don't know man.. Google drive kinda sucks

Келесі