Skip to content

koshieguchi/mini_kvs

Repository files navigation

Mini KVS

A simple key-value store implemented in C++. This KV-Store is based on LSM-Tree.

How to Use

Install & Build

git clone
cd final_db_project
bazel build //...

# ref: Output Directory Layout, https://bazel.build/remote/output-directories
bazel clean
bazel clean --expunge # -expunge option will clean the entire outputBase.

Test

To run all the tests in the project from the build directory, run the following command:

bazel test //tests/... # execute all tests
bazel test //tests:avl_tree_test # execute a specific test

command line options

  • --test_output=summary: default
  • --test_output=errors: only show errors
  • --test_output=all: show all output

Experiments

To run all the experiments in the project from the build directory, run the following command:

bazel run //...
bazel run //...   --output_filter='' --verbose_failures --subcommands

This will generate the experiment results in CSV format in the experiments directory.

Debug

bazel query --output=build //external:cc_toolchain # current compiler
bazel info release
bazel info workspace # root directory
bazel info output_base # base directory of build output
bazel info execution_root # directory for execution directory

echo -n $(pwd) | md5sum
# check the hash value of the current directory for output directory
# ex) b8f5b01e148b1e668d68d5e6cc8c2765

bazel build //... --build_event_text_file=events.txt # you can see the build events
bazel dump --rules

Naming Conventions

Follow the Google C++ Style Guide.

  • file_name: snake_case
  • variable_name: snake_case
  • ClassName: PascalCase
  • FunctionName: PascalCase
  • ConstantName: k+PascalCase

References

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published