Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/helios2003/fastcask-db
Implementation of Bitcask, a high-performance key-value store, in C++ for efficient data storage and retrieval
https://github.com/helios2003/fastcask-db
Last synced: 7 days ago
JSON representation
Implementation of Bitcask, a high-performance key-value store, in C++ for efficient data storage and retrieval
- Host: GitHub
- URL: https://github.com/helios2003/fastcask-db
- Owner: helios2003
- Created: 2024-10-05T11:46:28.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-30T21:05:36.000Z (about 2 months ago)
- Last Synced: 2024-10-30T22:17:47.938Z (about 2 months ago)
- Language: C++
- Homepage:
- Size: 141 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.