## Bookshelf
Here's a collections of books and papers that I've read.
## π books π
- Operating Systems: Three Easy Pieces [(link)](https://pages.cs.wisc.edu/~remzi/OSTEP)
- Designing Data-Intensive Applications [(link)](https://dataintensive.net/)
- The Rust Programming Language [(link)](https://doc.rust-lang.org/book/)
- Writing An Interpreter In Go [(link)](https://interpreterbook.com/)
- Writing A Compiler In Go [(link)](https://compilerbook.com/)
- Rust Atomics and Locks [(link)](https://marabos.nl/atomics/)
- Elixir in Action [(link)](https://www.manning.com/books/elixir-in-action)
## π papers π
#### *distributed systems*
- Time, Clocks, and the Ordering of Events in a Distributed System [(paper)](https://www.microsoft.com/en-us/research/uploads/prod/2016/12/Time-Clocks-and-the-Ordering-of-Events-in-a-Distributed-System.pdf)
- ZooKeeper: Wait-free coordination for Internet-scale systems [(paper)](https://www.usenix.org/legacy/event/atc10/tech/full_papers/Hunt.pdf)
- Paxos Quorum Leases: Fast Reads Without Sacrificing Writes [(paper)](https://dl.acm.org/doi/10.1145/2670979.2671001)
- (Raft) In Search of an Understandable Consensus Algorithm [(paper)](https://raft.github.io/raft.pdf)
- Zanzibar: Googleβs Consistent, Global Authorization System [(paper)](https://zanzibar.tech/)
- Kafka: a Distributed Messaging System for Log Processing [(paper)](https://notes.stephenholiday.com/Kafka.pdf)
- MapReduce: Simplified Data Processing on Large Clusters [(paper)](https://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
- Immutability Changes Everything [(paper)](https://dl.acm.org/doi/pdf/10.1145/2844112)
#### *systems*
- LazyLog: A New Shared Log Abstraction for Low-Latency Applications [(paper)](https://dassl-uiuc.github.io/pdfs/papers/lazylog.pdf)
- Asynchronous I/O β With Great Power Comes Great Responsibility [(paper)](https://arxiv.org/pdf/2411.16254)
- Logical Memory Pools: Flexible and Local Disaggregated Memory [(paper)](https://conferences.sigcomm.org/hotnets/2023/papers/hotnets23_amaro.pdf)
- A Scalable Concurrent malloc(3) Implementation for FreeBSD [(paper)](https://people.freebsd.org/~jasone/jemalloc/bsdcan2006/jemalloc.pdf)
- Anatomy of the LSM Memory Buffer: Insights & Implications [(paper)](https://dl.acm.org/doi/pdf/10.1145/3662165.3662766)
- Statistically Rigorous Java Performance Evaluation [(paper)](https://dri.es/files/oopsla07-georges.pdf)
- Lupin: Tolerating Partial Failures in a CXL Pod [(paper)](https://www.cs.utexas.edu/~witchel/pubs/zhu24dimes-lupin.pdf)
#### *databases*
- DINOMO: A Key-Value Store for Disaggregated Persistent Memory [(paper)](https://arxiv.org/pdf/2209.08743)
- Cassandra: A Decentralized Structured Storage System [(paper)](https://www.cs.cornell.edu/projects/ladis2009/papers/lakshman-ladis2009.pdf)
- Dynamo: Amazonβs Highly Available Key-value Store [(paper)](https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf)
- Are You Sure You Want to Use MMAP in Your DBMS? [(paper)](https://db.cs.cmu.edu/papers/2022/cidr2022-p13-crotty.pdf)
- The Snowflake Elastic Data Warehouse [(paper)](https://dl.acm.org/doi/10.1145/2882903.2903741)
#### *cloud and virtualization*
- Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider [(paper)](https://www.usenix.org/system/files/atc20-shahrad.pdf)
- Firecracker: Lightweight Virtualization for Serverless Applications [(paper)](https://www.usenix.org/system/files/nsdi20-paper-agache.pdf)
- Learning Scheduling Algorithms for Data Processing Clusters [(paper)](https://dl.acm.org/doi/pdf/10.1145/3341302.3342080)
- Memory Resource Management in VMware ESX Server [(paper)](https://www.waldspurger.org/carl/papers/esx-mem-osdi02.pdf)
- Unikernels: Library Operating Systems for the Cloud [(paper)](https://mort.io/publications/pdf/asplos13-unikernels.pdf)
---