Skip to content

All the assignments related to the Distributed Systems Course (DSCD, CSE-530) at IIIT-Delhi, Winter 2024 taught by Prof. Dhruv Kumar

Notifications You must be signed in to change notification settings

rainaarya/DSCD_Assignments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🌐 DSCD Assignments, W24 📚

This repository contains assignments related to the Distributed Systems course at IIIT-Delhi, Winter 2024 🎓

🛍️ Assignment 1: Distributed Messaging Frameworks

The first assignment focuses on usage of distributed messaging frameworks (gRPC, ZeroMQ, RabbitMQ). It consists of 3 parts:

  1. 🏪 Online Shopping Platform: Uses gRPC for communication between a central marketplace, sellers, and buyers. It demonstrates the practical application of gRPC in a distributed system.

  2. 💬 WhatsApp Messaging System: Utilizes ZeroMQ for messaging patterns, providing a simple and efficient way to implement messaging functionalities including group registration, message sending, and retrieval.

  3. 📹 YouTube Application: Implements a YouTube-like application using RabbitMQ. It allows YouTubers to publish videos and users to subscribe to their favorite YouTubers, facilitating communication through the YouTube server.

🤝 Assignment 2: Modified Raft Consensus Algorithm

The second assignment focuses on implementing a modified version of the Raft consensus algorithm, similar to those used by geo-distributed database clusters such as CockroachDB or YugabyteDB. It aims to build a distributed key-value store that ensures fault tolerance and strong consistency.

The concept of leader lease is used to address the issue of high read latencies in the traditional Raft algorithm.

📊 Assignment 3: K-Means Clustering using MapReduce

The third assignment focuses on implementing the K-means clustering algorithm using the MapReduce framework from scratch in a distributed manner. The implementation is done in Python and uses gRPC for communication between the master, mappers, and reducers.

The MapReduce implementation consists of the master, input split, map, partition, shuffle and sort, reduce, and centroid compilation components.


About

All the assignments related to the Distributed Systems Course (DSCD, CSE-530) at IIIT-Delhi, Winter 2024 taught by Prof. Dhruv Kumar

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published