My Notes
Structure of paper summary
For paper summaries, I try to prioritize understanding the intuitions behind the technology over memorizing the nitty-gritty details. In particular, here are some questions I will focus on answering:
- What is the problem the authors wish to solve?
- What is the big picture (architecture)?
- How is the solution implemented in practice? (How does it differ from the theory?)
- What are the main advantages of the solution?
- What are some shortcomings of the solution?
Understanding Sequence Coordination in xv6
July 02, 2021Coordination or synchronisation is a fundamental building-block for thread programming. We will discuss the main way xv6 does this - sleep/wakeup mechanism...
Paper Summary - No Compromises: distributed transactions with consistency, availability and performance (2015)
June 30, 2021An alternative take on fault-tolerant transactions (atomicity and strict serializability) + sharding. The previous time we examine Spanner which has the same guarantees.
Understanding Thread Switching in xv6
June 28, 2021The xv6 scheduler has a dedicated thread (saved registers and stack) per CPU because it is not safe for the scheduler to execute on the old process's kernel stack...
Paper Summary - Spanner: Google's Globally Distributed Database (2012)
June 24, 2021Spanner is Google's scalable, multi-version, globally distributed and synchronously-replicated database. Rare example of wide-area distributed transactions, and Spanner showed that this can be practical...
Understanding Device Interrupts in xv6
June 18, 2021Device interrupts tells the kernel that HW wants attention now. Interrupts are a type of traps with new issues/complications...
Understanding Traps in xv6
June 13, 2021There are three kinds of event which cause the CPU to set aside ordinary execution of instructions and force a transfer of control to special code that handles the event.
Debugging with GDB
June 06, 2021Collection of useful GDB commands
Paper Summary - The QUIC Transport Protocol: Design and Internet-Scale Deployment (2017)
June 05, 2021QUIC (pronounced “quick”) is a transport layer (TL) protocol developed on top of UDP (User Datagram Protocol).
Paper Summary - Zero Downtime Release: Disruption-free Load Balancing of a Multi-Billion User Website (2020)
May 28, 2021Zero Downtime Release is a collection of mechanisms used at Facebook to shield the end-users from any disruptions, preserve the cluster capacity and robustness of the infrastructure when updates are released globally...
Paper Summary - The Google File System (2003)
April 15, 2021Google File System (GFS) is a scalable distributed file system for large distributed data-intensive applications. It provides fault tolerance even when running on inexpensive commodity hardware, and delivers high average performance to a large number of clients...
Paper Summary - MapReduce: Simplified Data Processing on Large Clusters (2004)
April 09, 2021MapReduce is an interface that enables automatic parallelization and distribution of large-scale computation, while abstracting over the messy details of parallelization, fault-tolerance, data distribution and load balancing...
An overview of MIT 6.824
April 08, 2021What is MIT 6.824: Distributed System all about and why I decided to take it? ...