Skip to content

iJustErikk/yadb

Repository files navigation

YAdb

yet another database Test Status

Welcome to YAdb! This is my first (nontrival) Rust project. I am trying to implement a database from reasonably scratch. I've implemented a decent performance LSM based storage engine. Once that supports the features I need for a SQL database/distributed kv store, I'll switch to those.

Update: Improving performance, API and adding iterators to storage engine to support SQL db workload.

Goals for this project:

  • Build lsm based kv store (almost there, see roadmap for more features)
  • Build distributed kv engine (need to decide whether to implement causal (probably more fun) or strong consistency)
  • Build single node sql database (simple sql to start)
  • Build distributed sql database (with simple sql, maybe fuller sql syntax for non-distributed databases) like Cockroachdb
  • (possibly) build b epsilon/fractal tree storage engine (have the bones, would need to implement only the data structure)

Running/testing/profiling LSM Based KV Storage Engine

Run ./setup.sh to get started.

Run cargo test to run tests.

Run cargo test main_bench to run one of the current benchmarks.

Run sudo sysctl -p && cargo flamegraph --test test_storage -- main_bench to profile current benchmark.

About

yet another database

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published