GithubHelp home page GithubHelp logo

yadb's Introduction

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.

yadb's People

Contributors

ijusterikk avatar

Stargazers

 avatar Eason Wang avatar Kould avatar

Watchers

 avatar

yadb's Issues

How is the progress now?

Is the lsm storage completed? It seems that the roadmap is consistent with tanlentplan/tinysql

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.