-
Notifications
You must be signed in to change notification settings - Fork 1
Research
Sam Burdick edited this page Jun 23, 2018
·
1 revision
- Silbershcatz et al. Operating System Concepts, 9th ed. This provides a good general description of the fundamental components of computer systems (processes, threads, locks, etc.)
- CS475
- Kerrisk, The Linux Programming Interface. A comprehensive description of what it says it's on that may just subsume other (programming, esp.) resources suggested here.
- Beej's Guide to Network Programming is very helpful for understand sockets and the C socket library.
- An Introductory 4.4BSD Interprocess Communication Tutorial
- Socket programming in C on Linux – tutorial
- Kerrisk, Chap. 56
- Van Steen/Tanenbaum: Distributed Systems, 3rd ed.
This is a high-level and theoretical overview of distributed systems. Applicability is thus not immediately visible but still contains many essential notes and references. Should look to this in later stages of design once the basic concepts are well-understood. - Tanenbaum, Distributed Operating Systems.
This is a bit easier to approach book than VS/T, but is not freely obtained. - Silberschatz, Chap. 17
Describes DS through the lens of OS, but also covers networking and gives an extended distributed filesystem example. - DeCandia et al. Dynamo: Amazon’s Highly Available Key-value Store
This paper describes the architecture of Dynamo. It uses various tricks of the trade such as consistent hashing and Merkel trees to optimize its scalability and performance. A good concentrated look
This is a simple algorithm used in many distributed systems such as Dynamo/Voldemort and Chord.
- Karger et al. Consistent hashing and random trees (this is the research paper)
- Karger et al. Web Caching with Consistent Hashing (this is a watered-down version of the research paper)
- Tom White. Consistent Hashing (a blog post that provides a concise overview as well as a Java code sample)
- Lamping and Veach. A Fast, Minimal Memory, Consistent Hash Algorithm