Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GhalaDb

docs.rs GitHub Workflow Status (with event) Crates.io

A key value datastore that implements keys and values separation inspired by the WiscKey paper.

GhalaDb implements a SSD-conscious data layout by decoupling the storage of keys from values. An in-memory tree stores the keys along with pointers to the values, while the values are stored in a separate log file. This significantly reduces write amplification during ingestion, while facilitating faster data loading.

Since GhalaDb keeps all its keys and data pointers in memory, it is suitable for applications that have small-sized keys.

use ghaladb::{GhalaDb, GhalaDbResult};

fn main() -> GhalaDbResult<()> {
    let mut db = GhalaDb::new("/tmp/ghaladb", None)?;
    let key = "king".to_owned();
    let val = "queen".to_owned();
    db.put(&key, &val)?;
    assert_eq!(db.get(&key)?.unwrap(), val);
    Ok(())
}

References

About

LSM based Key Value Store implementation in Rust

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages