# Bookshelf - Curated
> *The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise*
> *\- Edsger W. Dijkstra*
##### ***(Raft) In Search of an Understandable Consensus Algorithm [(paper)](https://raft.github.io/raft.pdf)***
The Raft Consensus algorithm was built to be a *"simpler"* version of Paxos. This paper was a great introduction to consensus for me.
Today, Raft is used in many modern DB's, such as [CockroachDB](https://www.cockroachlabs.com/docs/stable/architecture/replication-layer), [Etcd](https://github.com/etcd-io/raft), [TiDB](https://www.pingcap.com/blog/raft-and-high-availability/), and more.
##### ***Paxos Quorum Leases: Fast Reads Without Sacrificing Writes [(paper)](https://dl.acm.org/doi/10.1145/2670979.2671001)***
Another consensus paper, this one modifying Paxos to increase read throughput.
A cool journey in optimizing Paxos for production, and the tradeoffs between different quorum configurations.
##### ***Kafka: a Distributed Messaging System for Log Processing [(paper)](https://notes.stephenholiday.com/Kafka.pdf)***
A high-throughput messaging system, built by LinkedIn in 2011.
This is one of the most widely-used distributed systems applications ever made, used for countless logging setups.
##### ***Firecracker: Lightweight Virtualization for Serverless Applications [(paper)](https://www.usenix.org/system/files/nsdi20-paper-agache.pdf)***
A well-written virtualization paper out of Amazon - introducing lightweight microVMs for better serverless performance.
A good overview of cloud virtualization setups and the tradeoffs in different emulation and isolation frameworks.
##### ***Logical Memory Pools: Flexible and Local Disaggregated Memory [(paper)](https://conferences.sigcomm.org/hotnets/2023/papers/hotnets23_amaro.pdf)***
A new architecture that carves the CXL memory pool out of the local memory of other interconnected PC's, instead of having a hardware-disaggregated CXL pool.
##### ***Are You Sure You Want to Use MMAP in Your DBMS? [(paper)](https://db.cs.cmu.edu/papers/2022/cidr2022-p13-crotty.pdf)***
A cool paper from the CMU DB group describing the (mostly bad) tradeoffs of using MMAP in a database.
This had a lot of cool insights into database storage engines and buffer pools - and how certain OS policies affect them.
##### ***The Snowflake Elastic Data Warehouse [(paper)](https://dl.acm.org/doi/10.1145/2882903.2903741)***
The classic Snowflake paper, and a great overview of OLAP databases and data warehouses.
Gives an idea of what workloads OLAP databases optimize for, and how they do it.
##### ***Learning Scheduling Algorithms for Data Processing Clusters [(paper)](https://dl.acm.org/doi/pdf/10.1145/3341302.3342080)***
Presents a RL-based approach to scheduling jobs in computing clusters.
An interesting look on using machine learning to optimize something instead of hand-tuned heuristics.