This lecture introduces the course structure, objectives, and foundational concepts in computer systems design. It outlines design principles, scope, expected outcomes, and key themes such as abstraction and modularity to be explored through the course.
This lab guide explains implementing a simple in-memory key-value store that runs as a client-server application over TCP sockets. It covers socket programming basics, multi-threaded server design, event-driven IO with epoll, and load generation for performance testing of the key-value server.
This document introduces the basic concepts of file systems including file abstractions, directories, file operations like open, read, write, and close, and the role of the operating system in managing persistent storage through files.
Dynamo is Amazon’s decentralized, highly available key-value storage system designed for e-commerce applications requiring high reliability and scalability. It uses consistent hashing, vector clocks for versioning, quorum-based replication, hinted handoff, anti-entropy repair, and gossip-based membership for fault tolerance and eventual consistency.
This paper presents Speak-up, a bandwidth-based pricing mechanism to defend against application-level DDoS attacks. It analyzes attack mitigation via client bandwidth payment, fairness against attackers and good clients, deployment challenges, and performance evaluation under different network conditions.