Jyotinder Singh
Jyotinder Singh
  • Видео 27
  • Просмотров 117 288
How Meta built a Highly Available, Strongly Consistent Object Store | System Design
In this video, we explore how Meta used Chain Replication, a rather unusual replication strategy to build a highly available, reliable, and strongly consistent object store.
Subscribe to my substack: jyotinder.substack.com
Link to my GitHub: github.com/JyotinderSingh
Link to my Website: jyotindersingh.com/
Meta's blog: engineering. 2022/05/04/data-infrastructure/delta/
Chain Replication Paper: www.cs.cornell.edu/home/rvr/papers/OSDI04.pdf
Apportioned Queries Paper: www.usenix.org/legacy/event/usenix09/tech/full_papers/terrace/terrace.pdf
Просмотров: 161

Видео

How to build a Durable Write Ahead Log in Go | Segmentation, Auto Recovery, Checksums
Просмотров 7075 месяцев назад
Link to the newsletter post: jyotinder.substack.com/p/understanding-durability-using-write-ahead-logs Link to the complete code: github.com/JyotinderSingh/go-wal Subscribe to my substack: jyotinder.substack.com In this video we take a deep dive into understanding how Write Ahead Logs ensure durability in distributed systems, databases, and many such applications. We also take a deep dive into h...
How to build a Distributed Task Scheduler with Go, Postgres, and gRPC
Просмотров 4,8 тыс.6 месяцев назад
Link to the Newsletter Post: jyotinder.substack.com/p/designing-a-distributed-task-scheduler Link to the Code: github.com/JyotinderSingh/TaskMaster Subscribe to the Substack: jyotinder.substack.com In this video, we build a distributed task scheduler using Go, Postgres, gRPC, and Docker. We go over concurrency and thread-safety concepts such as goroutines, database locks, and Mutexes to get a d...
Merge K Sorted Lists (LeetCode) | Interview Question Explained
Просмотров 8873 года назад
Link to the Code: Heap Implementation: github.com/JyotinderSingh/Algorithms/blob/master/LeetCode/merge-k-sorted-lists-HEAP.cpp Map Implementation: github.com/JyotinderSingh/Algorithms/blob/master/LeetCode/merge-k-sorted-lists-MAP.cpp Link to the Problem: leetcode.com/problems/merge-k-sorted-lists/ Time Complexity: n * log(k) Link to my GitHub: github.com/JyotinderSingh Link to my Website: jyoti...
Merge Intervals (LeetCode) | Interview Question Explained
Просмотров 3033 года назад
Note: The diagrams in the video start ''interval 1" from point 0 rather than point 1, a small mistake that I noticed after the upload Link to the Code: gist.github.com/JyotinderSingh/f5e13c5e947dd61e3ea2c66fbb1e3fbc Lambdas in C /C: www.geeksforgeeks.org/lambda-expression-in-c/ Link to the Problem: leetcode.com/problems/merge-intervals/ Link to my GitHub: github.com/JyotinderSingh Link to my We...
Reduce Array Size to the Half (LeetCode) | Interview Question Explained
Просмотров 8363 года назад
Link to the Code: gist.github.com/JyotinderSingh/93f2e1202456198ea7cb1e20e7f36ece Link to the Problem: leetcode.com/problems/reduce-array-size-to-the-half/ Link to my GitHub: github.com/JyotinderSingh Link to my Website: jyotindersingh.com/ Timestamps: 00:00 - Problem Introduction 01:14 - Algorithm Explanation 04:12 - Coding Walkthrough Some great channels to learn more: Tushar Roy: ruclips.net...
Add Binary (LeetCode) | Adding Binary Numbers as Strings Explained
Просмотров 20 тыс.3 года назад
Link to the Code: gist.github.com/JyotinderSingh/d55da3d65dc46d3124c506e42ffc8d2a Link to the Problem: leetcode.com/problems/add-binary/ Link to my GitHub: github.com/JyotinderSingh Link to my Website: jyotindersingh.com/ Timestamps: 00:00 - Problem Introduction 00:54 - Quick Intro to Number Systems 03:59 - Algorithm Explanation 05:23 - Coding Walkthrough Some great channels to learn more: Tush...
Course Schedule II (LeetCode) | DFS Topological Sort Explanation
Просмотров 6153 года назад
Link to the Code: gist.github.com/JyotinderSingh/c710ca0faf70aa96cbe428153dc49069 Link to Tushar Roy's Topological Sort Explanation: ruclips.net/video/ddTC4Zovtbc/видео.html Link to my GitHub: github.com/JyotinderSingh Link to my Website: jyotindersingh.com/ Timestamps: 00:00 - Problem Explanation 02:30 - Algorithm 06:23 - Coding Walkthrough Some great channels to learn more: Tushar Roy: ruclip...
Rotate List (LeetCode) | Linked List Interview Question Explanation
Просмотров 3,1 тыс.3 года назад
Link to the Code: gist.github.com/JyotinderSingh/f91c411e29db478ab80403d1e9b9efdb Link to the Problem: leetcode.com/problems/rotate-list/ Link to my GitHub: github.com/JyotinderSingh Link to my Website: jyotindersingh.com/ Timestamps: 00:00 - Problem Explanation 01:02 - Algorithm 04:01 - Coding Walkthrough Some great channels to learn more: Tushar Roy: ruclips.net/user/tusharroy2525 Errichto: r...
Spiral Matrix (LeetCode) | Spiral Ordering of a Matrix Explanation
Просмотров 1263 года назад
Link to the Code: gist.github.com/JyotinderSingh/4a2d635140091beb0e98cadf2e7fb0e3 Link to the Problem: leetcode.com/problems/spiral-matrix/ Link to my GitHub: github.com/JyotinderSingh Link to my Website: jyotindersingh.com/ Timestamps: 00:00 - Problem Introduction 02:20 - Algorithm Approach 03:20 - Algorithm Coding Walkthrough Some great channels to learn more: Tushar Roy: ruclips.net/user/tus...
Reverse Sublist in Linked List | (Reverse Linked List II on LeetCode) Explanation
Просмотров 19 тыс.3 года назад
Link to the Code: gist.github.com/JyotinderSingh/96fec7f9af3712c6cf765dedb7bf13b2 Link to the Problem: leetcode.com/problems/reverse-linked-list-ii/ Link to my GitHub: github.com/JyotinderSingh Link to my Website: jyotindersingh.com/ Timestamps: 00:00 - Problem Introduction 01:44 - Algorithm Explanation 12:25 - Coding Walkthrough Some great channels to learn more: Tushar Roy: ruclips.net/user/t...
Island Perimeter (LeetCode) | Interview Question Explanation
Просмотров 2294 года назад
Link to the Code: gist.github.com/JyotinderSingh/2a3fe0c6d60789f9673c97cc7801926c Link to the Problem: leetcode.com/problems/island-perimeter/ Link to my GitHub: github.com/JyotinderSingh Link to my Website: jyotindersingh.com/ Timestamps: 00:00 - Problem Introduction 01:10 - Algorithm Walkthrough 03:51 - Coding Walkthrough Explanation Some great channels to learn more: Tushar Roy: ruclips.net/...
Count Largest Group (LeetCode) | Interview Question Explanation
Просмотров 1,7 тыс.4 года назад
Count Largest Group (LeetCode) | Interview Question Explanation
Increment Integer Represented as an Array (Plus One on LeetCode) | Interview Question Explained
Просмотров 1744 года назад
Increment Integer Represented as an Array (Plus One on LeetCode) | Interview Question Explained
Number of Subsequences That Satisfy the Given Sum Condition (LeetCode)
Просмотров 4,5 тыс.4 года назад
Number of Subsequences That Satisfy the Given Sum Condition (LeetCode)
Arranging Coins (LeetCode) | Binary Search Algorithm Explanation
Просмотров 1,6 тыс.4 года назад
Arranging Coins (LeetCode) | Binary Search Algorithm Explanation
Word Search (LeetCode) | Interview Question Algorithm Explanation
Просмотров 3884 года назад
Word Search (LeetCode) | Interview Question Algorithm Explanation
Edit Distance between 2 Strings | The Levenshtein Distance Algorithm + Code
Просмотров 53 тыс.4 года назад
Edit Distance between 2 Strings | The Levenshtein Distance Algorithm Code
4Sum (LeetCode) | Interview Question Algorithm Explanation
Просмотров 1,4 тыс.4 года назад
4Sum (LeetCode) | Interview Question Algorithm Explanation
Unique Binary Search Trees (LeetCode) | Dynamic Programming Explanation
Просмотров 1774 года назад
Unique Binary Search Trees (LeetCode) | Dynamic Programming Explanation
3Sum (LeetCode) | Interview Question Algorithm Explanation
Просмотров 5074 года назад
3Sum (LeetCode) | Interview Question Algorithm Explanation
Two Sum (LeetCode) | Interview Question Algorithm Explanation
Просмотров 1974 года назад
Two Sum (LeetCode) | Interview Question Algorithm Explanation
Dungeon Game (LeetCode) | Dynamic Programming Explanation
Просмотров 1,5 тыс.4 года назад
Dungeon Game (LeetCode) | Dynamic Programming Explanation
Subarray Sum Equals K (LeetCode) | Interview Question Explanation
Просмотров 8344 года назад
Subarray Sum Equals K (LeetCode) | Interview Question Explanation

Комментарии

  • @zekicaneksi
    @zekicaneksi 22 дня назад

    even if i understood it, you made a fanstastic job. thanks my man

  • @20-213K.abhilasha
    @20-213K.abhilasha Месяц назад

    we cannot use it as a[i] & b[j] it is not an array

  • @jasonzavaglia
    @jasonzavaglia Месяц назад

    Best explanation I've seen on it though, thanks! Just wanted to point out though that there is an off-by-one error in the code. The for loops need to be up to <= word1.size() , not < word1.size(), and the final result should be retrieved from dp[word1.size()][word2.size()]. Try the test case "abc" / "xyz" for an example with edit distance 3. I noticed that the initial array sizing with +1's - but the algorithm coded there (incorrectly) does not use the last column/row.

  • @aarushisharma7856
    @aarushisharma7856 Месяц назад

    Thanks a lot!!!

  • @vaibhavmewada4508
    @vaibhavmewada4508 Месяц назад

    nice explanation

  • @chhayakumardas9539
    @chhayakumardas9539 2 месяца назад

    A very insightful video. Just had one question around repair. Once we find a corrupted log wouldn't the data be insconsistent even after the repair? I am coming from the place where I have to use repair for a DB recovery

    • @JyotinderSingh
      @JyotinderSingh 2 месяца назад

      The repair is essentially discarding all data that it cannot read. It preserves entries up till the last row of data that the system is able to read successfully. We work on the assumption that all data which we can read is correctly stored in the WAL (Reinforced by the checksum). The recovery mechanism is on best effort basis, and attempts to retrieve all data that it can successfully read.

  • @sambhavmishra5423
    @sambhavmishra5423 2 месяца назад

    bro can you bring something with golang

  • @prashlovessamosa
    @prashlovessamosa 2 месяца назад

    Great explanation

  • @snehasaxena8198
    @snehasaxena8198 2 месяца назад

    So concise and on point

  • @dwivedishashank9
    @dwivedishashank9 2 месяца назад

    Thanks man. Will be using variable names going forward :)

  • @obarlanytska3051
    @obarlanytska3051 2 месяца назад

    cool video with brilliant explanation.

  • @pianomoonpunch
    @pianomoonpunch 2 месяца назад

    Thankyou so much for the explanation!! I have my finals next week and this helped a lot.

  • @terfamike-kusah6715
    @terfamike-kusah6715 2 месяца назад

    Supposing I want to Design and implement a distributed system that monitors and optimizes resource utilization across multiple nodes in a network. What changes do I make?

  • @zaorincito
    @zaorincito 2 месяца назад

    good video explanation thanks

  • @og1kenobi973
    @og1kenobi973 3 месяца назад

    You, sir, are a LEGEND!

  • @engineeringflix
    @engineeringflix 3 месяца назад

    very welll explained....

  • @janogashoamatalaah7764
    @janogashoamatalaah7764 3 месяца назад

    thank you

  • @RiteshKumar-sx7ng
    @RiteshKumar-sx7ng 4 месяца назад

    thank you very much!! Bhaiya.

  • @teeshadembla6920
    @teeshadembla6920 4 месяца назад

    amazing explanation!!!

  • @angeltran381
    @angeltran381 4 месяца назад

    Thank you. At first, I feel difficult to understand the problem. Thanks to your video, it is clear and easy to implement.

  • @thiccphone1166
    @thiccphone1166 5 месяцев назад

    Why would you want the minimum health at the end? I would want maximum health especially if you can carry health over to the next floor. TBH, wasn't really paying attention and you may have explained it but I don't get what you mean by "wasting health" since you aren't technically wasting anything since if the goal is only to reach (2,2) from (0,0) as long as you get to the location then the optimal solution is taking less steps. Since both solutions are equal, except one solution results in having more health at the end, it would be safe to assume that MORE health at the end is better rather than having the minimum. Having the maximum health means you will be prepared for the future, while having the minimum means you can only do the single task. So if the rule was to get there with the fewest steps, then health is irrelevant outside of being alive upon reaching the destination. If the rule was to get there before the princess's health reaches 0, say after every step she loses health and has a number of health points, the optimal solution would be to get as much health for the knight as possible and the princess has the minimum required to reach the goal. Given that the only rule is to reach the princess without dying then there are two solutions. If the question was what's the minimum health required by a knight to reach the princess then the optimal solution is still Down-Down-Right-Right as the minimum health require is 6, not 7. At the same time, my knight would be stronger by the time I reach the princess and your knight would be the weakest. My underdog knight could continue adventuring.

  • @prashlovessamosa
    @prashlovessamosa 5 месяцев назад

    I have seen your projects those are super awesome. Please guide me how have you started learning so deeply and how can i achieve it.

    • @JyotinderSingh
      @JyotinderSingh 5 месяцев назад

      Thanks for the kind words Prashant. I usually read books for inspiration and guidance in these domans. Some good books I can recommend are Architecture of Open Source Applications, Designing Data Intensive Applications, Database Internals by Alex Petrov, Understanding Distributed Systems.

    • @prashlovessamosa
      @prashlovessamosa 5 месяцев назад

      great thanks for sharing@@JyotinderSingh

  • @shameerbaramy3103
    @shameerbaramy3103 5 месяцев назад

    Thank you. Really good stuff !!

  • @avi_5827
    @avi_5827 5 месяцев назад

    Thank you for the video, It was highly insightful !!

  • @prashlovessamosa
    @prashlovessamosa 5 месяцев назад

    Great video please make more videos on low level stuff

  • @AMAN-oz8ud
    @AMAN-oz8ud 5 месяцев назад

    really liked your vscode theme, please share

  • @abhishekmehandiratta4241
    @abhishekmehandiratta4241 5 месяцев назад

    What a great video! thanks for the clear explanation!

  • @damercy
    @damercy 5 месяцев назад

    Great stuff! Thanks a lot! Please keep posting such videos with such clear explanation. 👌

    • @JyotinderSingh
      @JyotinderSingh 5 месяцев назад

      Thanks! More videos and articles coming!

  • @siddhantsangwan3556
    @siddhantsangwan3556 5 месяцев назад

    Great video on a topic I was curious about. Thanks!

  • @tarun3847
    @tarun3847 6 месяцев назад

    Zoom screen so it will be clear

    • @JyotinderSingh
      @JyotinderSingh 6 месяцев назад

      Will keep this in mind, thanks.

  • @deathdefier45
    @deathdefier45 6 месяцев назад

    Absolute pillar of the grpc community, thanks for this brother!

  • @kgaudel7993
    @kgaudel7993 6 месяцев назад

    Great stuff, please make more videos like this!

  • @abdu5822
    @abdu5822 6 месяцев назад

    Thanks sir. Please More system design and golang services

    • @JyotinderSingh
      @JyotinderSingh 6 месяцев назад

      Will be posting more videos about software internals and system design soon!

    • @abdu5822
      @abdu5822 6 месяцев назад

      @@JyotinderSingh thanks. Appreciate it sir.

  • @prashlovessamosa
    @prashlovessamosa 6 месяцев назад

    Thanks for sharing.

  • @ishandsa
    @ishandsa 6 месяцев назад

    I love Jyotinder Singh!

  • @navjotkambo
    @navjotkambo 6 месяцев назад

    Nicely explained

  • @BUY.YOUTUB.VIEWS.
    @BUY.YOUTUB.VIEWS. 6 месяцев назад

    Your charisma on camera is magnetic.

  • @yashsaraf6288
    @yashsaraf6288 6 месяцев назад

    very insightful! please bring more videos like this

  • @KNO476
    @KNO476 6 месяцев назад

    for the worked example starting at 10:17, in my opinion the explanations only work if we try to convert word2 to word1.

  • @amarieelohor7319
    @amarieelohor7319 7 месяцев назад

    Explicit explanation. I got confused using a different video; but this helped me understand. Thank you!!!!!!!!!!!!

  • @cantseeme101
    @cantseeme101 7 месяцев назад

    This was a great explanation, mate!

  • @Ali-zg4fy
    @Ali-zg4fy 8 месяцев назад

    I literally couldn't understand the UCSD course and your video helped me out big time. Recommending this to anyone who struggles tbh

  • @giorgikhachidze64
    @giorgikhachidze64 8 месяцев назад

    Great explanation! Only question is, why did we have to create dummy list? Why couldn't we do it with existing list?

  • @mohammadramadhoni3285
    @mohammadramadhoni3285 8 месяцев назад

    Its very great explanation, im very understand it now

  • @deepikasingh3122
    @deepikasingh3122 8 месяцев назад

    but sir, this is not levenshtein algorithm. coz for substitution it adds 2

  • @user-fo7qp9vi4f
    @user-fo7qp9vi4f 9 месяцев назад

    17:13 i could not understand how we can perform replace and insert ? min of the (Neighbouring elements +1 ) so it is either replae vs insert. But To convert "re" to "d" the way i see is replace 'r' by d and delete it. Or am i missing something?

  • @ogoubah
    @ogoubah 9 месяцев назад

    Really great explanation!! Thank you

  • @savagebeaztpeace8390
    @savagebeaztpeace8390 9 месяцев назад

    this is insightful, thanks!

  • @technologicalvivek7510
    @technologicalvivek7510 10 месяцев назад

    Very nice explanation brother

  • @chadsmith71
    @chadsmith71 10 месяцев назад

    Great video. I watched 2-3 other videos on this same problem, but I still struggled to understand the algorithm. Your explanation was clear and easier for me to understand. Well done.