This is a draft post that I have prematurely published. Currently, I am attending RC and I want to write as much as possible, log my daily learnings and activities. But, I also don't want to spend time on grammar and prose, so I am publishing all the posts which usually I'd have kept in my draft folder.
Most of my day went into trying to understand more of Dynamo paper and making notes.
I read this splendid article on “Learning to build distributed systems” by Marc Brooker (leads engineering on AWS Lambda). Key takeaways:
- Learn internals and practical patterns for Distributed Systems from the multiple resources: papers, open source code and YouTube videos
- Write your own: Get your hands dirty and write one, test it using Jepsen
- Work with a team/company that builds similar systems at scale
- Volunteer for pager duty/on-call and for debugging the hard issues
I was having difficulty with the insertion algorithm. The difficulty I was dealing with was, how do I propagate the changes like splits from children to the parent. Phil who had implemented a B Tree earlier suggested looking into CLRS for the algorithm. Till now, I was trying to implement it from the descriptions I read on the internet and explanations I saw in videos. Seeing the algorithm and pseudocode helped a lot!