https://github.com/helios2003/fastcask-db
Implementation of a high-performance key-value store, in C++ for efficient data storage and retrieval based on the principles of Bitcask
https://github.com/helios2003/fastcask-db
Last synced: 2 months ago
JSON representation
Implementation of a high-performance key-value store, in C++ for efficient data storage and retrieval based on the principles of Bitcask
- Host: GitHub
- URL: https://github.com/helios2003/fastcask-db
- Owner: helios2003
- Created: 2024-10-05T11:46:28.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-11-05T13:59:09.000Z (7 months ago)
- Last Synced: 2025-02-08T16:13:45.395Z (4 months ago)
- Language: C++
- Homepage:
- Size: 143 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FastCask-DB
FastCask-DB is a naive implementation of [Bitcask paper](https://riak.com/assets/bitcask-intro.pdf) in pure C++.
## Getting Started
- Clone the repository using the following command
```
git clone https://github.com/helios2003/FastCask-DB.git
```
- Change directory into the cloned folder and insert the following commands
```
./run.sh
```
- You will enter the terminal for FastCask DB where you can type the commands
- Press ``Ctrl + C`` for a forceful closure or type ``EXIT`` for a graceful closure.
- Run ``make clean`` to remove the object files created.## Performance testing
- The performance has been measured using [Catch2](https://github.com/catchorg/Catch2). Follow the installation steps as given [here](https://github.com/catchorg/Catch2/blob/devel/docs/tutorial.md#top).
- After downloading and configuring Catch2 write the following command
```
cd benchmark
./test.sh
```
## List of Commands Implemented
- ``SET ``: Sets the key and corresponding value with an optional expiry time.
- ``GET ``: Gets the value associated with the key.
- ``DELETE ``: Deletes the key and the associated values
- ``LIST``: Lists all the keys.
- ``SYNC``: Restores the database if there was a forceful exit done earlier (i.e. will not work if you exited from the DB shell using the ``EXIT`` command).
- ``EXIT``: Graceful closure deleting all the data stored in memory and on the disk.