GithubHelp home page GithubHelp logo

bnclabs / robt Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 1.0 161 KB

Read only BTree, immutable index for disk/SSD.

License: MIT License

Rust 99.07% Shell 0.48% Makefile 0.45%
rust-lang btree disk storage data-structures index

robt's Introduction

Rustdoc

Index key,value dataset using a Read Only Btree. Refer to rustdoc link (above) for details.

Contribution

  • Simple workflow. Fork - Modify - Pull request.
  • Before creating a PR,
    • Run make build to confirm all versions of build is passing with 0 warnings and 0 errors.
    • Run check.sh with 0 warnings, 0 errors and all testcases passing.
    • Run perf.sh with 0 warnings, 0 errors and all testcases passing.
    • Install and run cargo spellcheck to remove common spelling mistakes.
  • Developer certificate of origin is preferred.

robt's People

Contributors

prataprc avatar

Stargazers

Chojan Shang avatar GAURAV avatar

Watchers

James Cloos avatar  avatar

Forkers

icodein

robt's Issues

Caching btree-blocks.

One of the advantage of using read-only immutable btree index is that caching the btree-blocks are very straight-forward. A typical requirement would be:

  • Have an in-memory (key,value) map where key is file-position as u64 type and value is Vec<Entry<K,V,D>>. Note that we can as well cache parsed blocks.
  • We cannot cache all blocks, to limit caching we do the following.
    • Cache all inter-mediate blocks upto N levels.
    • Cache all intermediate blocks, but not leaf-blocks.
  • Now caching leaf-blocks would require an eviction strategy. We can handle that as a separate issue.

Bloom filter for key lookup.

Get() operation into the index can be made faster by attaching a bloom-filter to the index. Typically it is expected to give false-positive by no false-negative. Bitmap index (implementing the Bloom) is already integrated with the index Builder type. We need to integrate them on the read-side. Specifically on the get() side.

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.