General
Books
-
Gregg, B. (2013). Systems performance: enterprise and the cloud. Pearson Education.
-
Beyer, B., Jones, C., Petoff, J., & Murphy, N. R. (2016). Site Reliability Engineering: How Google Runs Production Systems. " O’Reilly Media, Inc.".
-
Tanenbaum, A. S., & Van Steen, M. (2017). Distributed systems: principles and paradigms.
-
Love, R. (2005). Linux Kernel Development (Novell Press). Novell Press.
Consensus
Papers
-
Howard, Heidi. (2018). Distributed consensus revised.
-
Yin, Maofan, et al. “Hotstuff: Bft consensus in the lens of blockchain.” arXiv preprint arXiv:1803.05069 (2018).
-
Fischer, Michael J., Nancy A. Lynch, and Michael S. Paterson. Impossibility of distributed consensus with one faulty process. No. MIT/LCS/TR-282. Massachusetts Inst of Tech Cambridge lab for Computer Science, 1982.
-
Nakamoto, Satoshi. Bitcoin: A peer-to-peer electronic cash system. Manubot, 2019.
-
Castro, Miguel, and Barbara Liskov. “Practical Byzantine fault tolerance.” OSDI. Vol. 99. No. 1999. 1999.
-
Miller, Andrew, et al. “The honey badger of BFT protocols.” Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. 2016.
-
Chan, Benjamin Y., and Elaine Shi. “Streamlet: Textbook Streamlined Blockchains.” IACR Cryptol. ePrint Arch. 2020 (2020): 88.
Cryptography
Books
- Ferguson, Niels, Bruce Schneier, and Tadayoshi Kohno. “Cryptography engineering.” Design Princi (2010).
Databases
Books
-
Kleppmann, M. (2017). Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable systems. " O’Reilly Media, Inc.".
-
Silberschatz, Abraham, Henry F. Korth, and Shashank Sudarshan. Database system concepts. Vol. 7. New York: McGraw-Hill, 2019.
Papers
-
Levandoski, Justin J., David B. Lomet, and Sudipta Sengupta. “The Bw-Tree: A B-tree for new hardware platforms.” 2013 IEEE 29th International Conference on Data Engineering (ICDE). IEEE, 2013.
-
Thomson, Alexander, et al. “Calvin: fast distributed transactions for partitioned database systems.” Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data. ACM, 2012.
Lock-free data structures
Papers
-
Hendler, Danny, Nir Shavit, and Lena Yerushalmi. “A scalable lock-free stack algorithm.” Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures. 2004.
-
Hart, Thomas Edward. Comparative performance of memory reclamation strategies for lock-free and concurrently-readable data structures. University of Toronto, 2005.
-
Kogan, Alex, and Erez Petrank. “A methodology for creating fast wait-free data structures.” ACM SIGPLAN Notices. Vol. 47. No. 8. ACM, 2012.
-
Herlihy, Maurice, Victor Luchangco, and Mark Moir. “Obstruction-free synchronization: Double-ended queues as an example.” 23rd International Conference on Distributed Computing Systems, 2003. Proceedings.. IEEE, 2003.
Hardware synchronization
Books
-
Herlihy, Maurice, and Nir Shavit. The Art of Multiprocessor Programming, revised first edition. Morgan Kaufmann, 2012.
-
John L. Hennessy and David A. Patterson. 2017. Computer Architecture, Sixth Edition: A Quantitative Approach (6th. ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.
Papers
- David, Tudor, Rachid Guerraoui, and Vasileios Trigonakis. “Everything you always wanted to know about synchronization but were afraid to ask.” Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles. ACM, 2013.
Networking
Books
-
Kurose, J. F., & Ross, K. W. (2017). Computer networking: a top-down approach (Vol. 7). Boston, USA: Addison Wesley.
-
Grigorik, I. (2013). High Performance Browser Networking: What every web developer should know about networking and web performance. " O’Reilly Media, Inc.".
Papers
-
Lamport, Leslie. “Time, clocks, and the ordering of events in a distributed system.” Communications of the ACM 21.7 (1978): 558-565.
-
Chandy, K. Mani, and Leslie Lamport. “Distributed snapshots: Determining global states of distributed systems.” ACM Transactions on Computer Systems (TOCS) 3.1 (1985): 63-75.
-
Shapiro, Marc, et al. “A comprehensive study of convergent and commutative replicated data types.” (2011).
-
Cardwell, Neal, et al. “BBR: Congestion-based congestion control.” Queue 14.5 (2016): 20-53.
-
Carpenter, Brian, ed. “RFC1958: Architectural principles of the Internet.” (1996).
-
Bush, Randy, and David Meyer. “RFC3439: Some internet architectural guidelines and philosophy.” (2002).
-
Jennings, Cullen, et al. “Resource location and discovery (reload) base protocol.” REsource (2014).
-
Piotrowska, Ania M., et al. “The loopix anonymity system.” 26th {USENIX} Security Symposium ({USENIX} Security 17). 2017.
-
Diaz, Claudia, Harry Halpin, and Aggelos Kiayias. “The Nym Network.” (2021).
-
Malhotra, Aanchal, et al. “Attacking the Network Time Protocol.” NDSS. 2016.
-
Birge-Lee, Henry, et al. “Sico: Surgical interception attacks by manipulating bgp communities.” Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security. 2019.
-
Gao, Lixin, and Jennifer Rexford. “Stable Internet routing without global coordination.” IEEE/ACM Transactions on networking 9.6 (2001): 681-692.
-
Gray, Caitlin, et al. “BGP Beacons, Network Tomography, and Bayesian Computation to Locate Route Flap Damping.” Proceedings of the ACM Internet Measurement Conference. 2020.
-
Shreedhar, Madhavapeddi, and George Varghese. “Efficient fair queuing using deficit round-robin.” IEEE/ACM Transactions on networking 4.3 (1996): 375-385.
-
Van Renesse, Robbert, et al. “Efficient reconciliation and flow control for anti-entropy protocols.” proceedings of the 2nd Workshop on Large-Scale Distributed Systems and Middleware. ACM, 2008.
Peer to peer
Papers
-
Cohen, Bram. “Incentives build robustness in BitTorrent.” Workshop on Economics of Peer-to-Peer systems. Vol. 6. 2003.
-
Zhao, Mingchen, et al. “Peer-assisted content distribution in akamai netsession.” Proceedings of the 2013 conference on Internet measurement conference. 2013.
Gossip / epidemic broadcast
Papers
-
Vyzovitis, Dimitris, et al. “GossipSub: Attack-Resilient Message Propagation in the Filecoin and ETH2. 0 Networks.” arXiv preprint arXiv:2007.02754 (2020).
-
Leitao, Joao, Jose Pereira, and Luis Rodrigues. “Epidemic broadcast trees.” 2007 26th IEEE International Symposium on Reliable Distributed Systems (SRDS 2007). IEEE, 2007.
Distributed hash table
Papers
-
Maymounkov, Petar, and David Mazieres. “Kademlia: A peer-to-peer information system based on the xor metric.” International Workshop on Peer-to-Peer Systems. Springer, Berlin, Heidelberg, 2002.
-
Baumgart, Ingmar, and Sebastian Mies. “S/kademlia: A practicable approach towards secure key-based routing.” 2007 International Conference on Parallel and Distributed Systems. IEEE, 2007.
Membership protocol
Papers
-
Das, Abhinandan, Indranil Gupta, and Ashish Motivala. “Swim: Scalable weakly-consistent infection-style process group membership protocol.” Proceedings International Conference on Dependable Systems and Networks. IEEE, 2002.
-
Bortnikov, Edward, et al. “Brahms: Byzantine resilient random membership sampling.” Computer Networks 53.13 (2009): 2340-2359.
Programming Languages
Books
-
Klabnik, Steve, and Carol Nichols. The Rust Programming Language. No Starch Press, 2018.
-
Brady, Edwin. Type-driven development with Idris. Manning Publications Company, 2017.
-
Lipovaca, M. (2011). Learn you a haskell for great good!: a beginner’s guide. no starch press.
-
Graham Hutton. 2016. Programming in Haskell (2nd. ed.). Cambridge University Press, USA.
-
Friedman, Daniel P., and Matthias Felleisen. The Little Schemer. MIT Press, 1995.
-
Abelson, Harold, and Gerald Jay Sussman. Structure and interpretation of computer programs. The MIT Press, 1996.
-
Cooper, Keith, and Linda Torczon. Engineering a compiler. Elsevier, 2011.
-
Cox-Buday, Katherine. Concurrency in Go: Tools and Techniques for Developers. " O’Reilly Media, Inc.", 2017.
-
Armstrong, Joe. Programming Erlang: software for a concurrent world. Pragmatic Bookshelf, 2013.
Papers
- Hughes, John. “QuickCheck testing for fun and profit.” International Symposium on Practical Aspects of Declarative Languages. Springer, Berlin, Heidelberg, 2007.