Skip to content

PedroSimoes24/Key-value-storage-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

key-value storage service (DynamoDB)

About

This project involves the development of a robust and reliable key-value database inspired by Amazon DynamoDB. Designed to support multiple concurrent clients with the use of multithreading and concurrency management. The system 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 made in collaboration with two other classmates:
Diogo lopes Francisco Catarino


Key learnings

  • Client-Server Architectures
  • Multithreading
  • Server state replication
  • Apache Zookeeper
  • TCP and UDP Sockets
  • Serialization (Protocol Buffers)
  • Memory Management and I/O
  • Debugging Tools

Compilation

compile using make tool

make

Execution

run server

format: client_hashtable <server>:<port>
./client_hashtable localhost:2181

run client

format: server_hashtable <zookeeper ip:port> <port> <n_lists>
./server_hashtable localhost:2181 12345 3

Client Operations

  1. put <key> <value>
  2. get <key>
  3. del <key>
  4. size
  5. getkeys
  6. gettable
  7. quit

About

Reliable and robust key-value storage system. Inspired by amazon DynamoDB

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors