Course Introduction and Overview

Course Introduction and Overview

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.

Key-Value Server Implementation and Performance Testing

Key-Value Server Implementation and Performance Testing

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.

Basics of File Systems and File Operations

Basics of File Systems and File Operations

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.

Amazon’s Dynamo – Highly Available Key-Value Store

Amazon’s Dynamo – Highly Available Key-Value Store

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.

Speak-up Defense Mechanism for Application-Level DDoS

Speak-up Defense Mechanism for Application-Level DDoS

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.