Skip to main content

/EDUCATION/COMP2207

COMP2207: Distributed Systems and Networks

Second Year, 2024/25 · Semester 2

Overall mark 75%

Computer networks and distributed coordination, applied to a replicated file-storage system in Java.

SKILLS Network Programming · Concurrency · Distributed Coordination · Protocol Design

TECHNOLOGIES Java · TCP · Sockets

What the module covered

The networking side covered the layers of a network, IP addressing and routing, TCP and UDP, and application protocols. The distributed systems side covered logical clocks, mutual exclusion, leader election, replication, consistency, and failure models.

For the coursework, I implemented a file-storage system with a central controller and multiple storage processes communicating over TCP sockets. It supported storing, loading, listing, and removing replicated files, with acknowledgements, timeouts, and rebalancing to coordinate operations across the storage nodes.

What I took from it

The coursework made the coordination problem concrete: sending a request is different from knowing that every required node has completed it. Tracking operations in progress, handling missing acknowledgements, and keeping file metadata consistent were as much a part of the implementation as transferring the bytes.