LemonDB
A simple key-value database by Lemonion. Inc.
LemonDB

Introduction

A simple multi-thread key-value database by Lemonion. Inc.

See more information in our official documentation HTML/PDF

Compilation

Debug

This version is used for debugging.

mkdir debug && cd debug
cmake .. -DCMAKE_BUILD_TYPE=Debug
make lemondb
src/lemondb

Release

This version is used for performance test.

mkdir release && cd release
cmake .. -DCMAKE_BUILD_TYPE=Release
make lemondb
src/lemondb

Testing

For a small test case, just use the files under test folder. Set the working directory as test, set the program argument as test.query or test*.in.

The test cases are too bug, so they are stored with Git LFS. See more information on Git LFS pages.

Once Git LFS extension is installed, you can download the test cases through cloning the submodule:

git submodule init
git submodule update

Set the working directory as testcase/sample, set the program argument as *.query, simply start debugging! (The loading query in all test files should be based on testcase/sample directory)

Documentation

The working flow of LemonDB is written by ourselves.

The class / function documentation is generated by Doxygen.

Design

Performance Improvement

We use many tricks to improve performance:

Problems Solved

Due to our sophisticated design, we ran into many problems. These are some of them: