yfractal / blog

20 stars 0 forks source link

Papers for Backend Developers #19

Open yfractal opened 1 day ago

yfractal commented 1 day ago
yfractal commented 1 day ago

System Design

The Google File System (GFS) [1]

This is a landmark industry paper. Unlike academic approaches, industry solutions often address problems with limited resources, time, or personnel. GFS is an excellent paper because its authors deeply understand the problem and make thoughtful trade-offs. For instance, GFS opts for a single master design. While single masters are often criticized for scalability issues, this choice simplifies complexity and, with a well-thought-out design, meets the near needs of the system. However, as GFS needed to scale by several orders of magnitude, the single-master design eventually became a bottleneck. You can read more about this in a retrospective interview with a GFS engineer [2].

Scaling Memcache at Facebook [3]

This paper discusses how to scale caching systems at a large scale. It trades consistency for scalability to solve practical problems encountered in production. One key takeaway is: "Separating cache and persistent storage systems allows us to independently scale them." Separation is a fundamental principle in designing distributed systems and microservices. Related papers offer further reading: [4][5][6].

References

  1. The Google File System. SOSP 2003.
  2. Retrospective interview with GFS engineer
  3. Scaling Memcache at Facebook. NSDI 203.
  4. The CacheLib Caching Engine: Design and Experiences at Scale. OSDI 2020
  5. TAO: Facebook’s Distributed Data Store for the Social Graph
  6. Noria: dynamic, partially-stateful data-flow for high-performance web applications. OSDI 18