Data Base similar to Amazon DynamoDB, made in C
This Project was made in collaboration with two other classmates:
Pedro Simoes
Francisco Catarino
This project involves the development of a secure and reliable key-value database inspired by Amazon DynamoDB, designed to support multiple web services with high availability and fault tolerance. The system processes concurrent client requests efficiently using multithreading, ensuring robust concurrency management and accurate shared data access. It incorporates fault tolerance through server state replication, leveraging the Chain Replication model and Apache ZooKeeper to maintain data consistency and reliability. The database guarantees durability, never losing data or experiencing downtime, making it a dependable solution for critical applications. This project was developed as part of the Distributed Systems subject in university, with the help of two colleagues.
- Client-Server Architectures
- Apache Zookeeper
- TCP and UDP Sockets
- Protocol Buffers
- Memory Management and I/O
- Debugging Tools
- Pthreads
This project is divided into these directories:
include: to store the .h files;source: to store the .c files;lib: to store libraries;object: to store object files;binary: to store executable files.
make cleanmakeformat: client_hashtable <server>:<port>
./client_hashtable localhost:2181format: server_hashtable <zookeeper ip:port> <port> <n_lists>
./server_hashtable localhost:2181 12345 3put <key> <value>get <key>del <key>sizegetkeysgettablequit
