This Project aims to build a Graph Database with load balancing features in POSIX compliant C using multithreading. This project touches upon multiple concepts from operating systems such as scheduling, inter process communication (message queues, shared memory segments and pipes), concurrency and synchronization (using semaphores and mutexes). All codes have been tested on Ubuntu 22 systems.
Further details of the project are available in 'Assignment 2.pdf'.