MeloSpace

My Notes

These are notes that I've made in the process of studying various subjects, most of the time through research papers or online courses. Usually, I will read the subject matter (e.g. research papers) at least once, and try to summarise and collate key points and argument made in these notes. I will also frequently refer to videos or secondary materials for more context. The notes in this section, hence, acts like a collation of different insights from various sources on the subject matter.

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:

  1. What is the problem the authors wish to solve?
  2. What is the big picture (architecture)?
  3. How is the solution implemented in practice? (How does it differ from the theory?)
  4. What are the main advantages of the solution?
  5. What are some shortcomings of the solution?



Understanding Sequence Coordination in xv6

July 02, 2021

Coordination 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, 2021

An 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, 2021

The 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, 2021

Spanner 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, 2021

Device 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, 2021

There 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, 2021

Collection of useful GDB commands

Paper Summary - The QUIC Transport Protocol: Design and Internet-Scale Deployment (2017)

June 05, 2021

QUIC (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, 2021

Zero 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, 2021

Google 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, 2021

MapReduce 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, 2021

What is MIT 6.824: Distributed System all about and why I decided to take it? ...