Skip to content

A concurrent key-value store,column oriented database and more, written in Rust.

License

Notifications You must be signed in to change notification settings

solidstatedb/palladiumdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

palladiumdb

A cuncurrent key value store, column oriented database and more, written in rust.

Build Status Docs

Overview

palladiumdb is a rust port of the silicondb project. This has the same goals as silicondb, with the added objective for the author to become familiar with the Rust ecosystem and language.

As with silicondb, this project does not aim to with existing NoSQL databases or provides any novel features.

💻 Storage Engine modules

  • A concurrent in memory map implemented as a hashtable.
  • A lock-free variant of the map mentioned above.
  • A wait-free simulation of the lock-free map.
  • A lock-free concurrent SSTable simulated in a wait-free manner.
  • Compaction operations on SSTable.
  • Column oriented storage support. (Needs further elaboration)
  • Content correctness verification and replication using merkle trees for SSTable and Column oriented storage.
  • Message sequencing with merkle trees.

🏂 Features

  • Partial implementation of the Redis protocol:
    • Key, Value retreival
    • Key Ranged operations
  • REST API server for accessing data.
  • CAP compliant.

Documentation

Documentation compiled using rustdoc can be found here.

🏗️ Build Instructions

Pre-requisites

  • cargo
git clone [email protected]:solidstatedb/palladiumdb.git
cd palladiumdb
cargo build --release

This produces a binary target/release/palladiumdb which is the silicondb daemon server.

🧪 Testing

cargo test

This should run all tests.

License

palladiumdb is licensed under the MIT License See LICENSE for the full license text.

About

A concurrent key-value store,column oriented database and more, written in Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages