https://github.com/mohamedmetwalli5/zarka
Implementation of a Key-Value store that is inspired by Cassandra's architecture to be named "Zarka".
https://github.com/mohamedmetwalli5/zarka
big-data data-intensive-applications
Last synced: 9 months ago
JSON representation
Implementation of a Key-Value store that is inspired by Cassandra's architecture to be named "Zarka".
- Host: GitHub
- URL: https://github.com/mohamedmetwalli5/zarka
- Owner: MohamedMetwalli5
- Created: 2022-08-26T21:32:28.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2022-09-14T14:44:34.000Z (about 3 years ago)
- Last Synced: 2025-01-08T21:58:25.266Z (11 months ago)
- Topics: big-data, data-intensive-applications
- Language: Java
- Homepage:
- Size: 973 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README


# Zarka
## The Topology for Zarka

## Features
1. LSM-Tree needs is used as our storage data structure.
2. Consistent Hashing is used as our partition rebalancing strategy (Only adding a
new node should be supported).
3. Leaderless replication is used with configurable quorum sizes.
## The Operations and Data Flow
Zarka have two kinds of applications:
- Zarka Server: a node that holds data partitions and replicas. You should provide enough
logs in the console so your TA can see the state of the server (e.g., received requests,
incoming data, replicas created, …. etc.)
- Zarka Client: a command line interface where user can send two types of requests:
- `add`( key, value)
- `get`( key )
Both key and value are string values.
Zarka Client will pick any Zarka Server nodes at random and it will be the coordinator to
execute his request.
## The Configuration File
There is a configuration file used by all nodes to define system parameters such as:
- Number of Nodes
- TCP ports for the nodes
- Quorum Write
- Quorum Read
- Replication Factor
## Its Created Logo
