All Projects → WyattJia → Pomegranate

WyattJia / Pomegranate

Licence: MIT license
🌳 A tiny skiplist based log-structured merge-tree written in Rust.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Pomegranate

rippledb
Embeddable key-value database engine in pure TypeScript, based on LSM-Tree
Stars: ✭ 33 (+65%)
Mutual labels:  lsm, lsm-tree
Tendis
Tendis is a high-performance distributed storage system fully compatible with the Redis protocol.
Stars: ✭ 2,295 (+11375%)
Mutual labels:  kvstore, kv
MIT6.824-2021
4 labs + 2 challenges + 4 docs
Stars: ✭ 594 (+2870%)
Mutual labels:  storage, kvstore
Sia
Blockchain-based marketplace for file storage. Project has moved to GitLab: https://gitlab.com/NebulousLabs/Sia
Stars: ✭ 2,731 (+13555%)
Mutual labels:  storage
qed
The scalable, auditable and high-performance tamper-evident log project
Stars: ✭ 87 (+335%)
Mutual labels:  lsm-tree
apollo-cache-instorage
Apollo Cache implementation that facilitates locally storing resources
Stars: ✭ 98 (+390%)
Mutual labels:  storage
synology-csi
Container Storage Interface (CSI) for Synology
Stars: ✭ 136 (+580%)
Mutual labels:  storage
Aresdb
A GPU-powered real-time analytics storage and query engine.
Stars: ✭ 2,814 (+13970%)
Mutual labels:  storage
estuary
A custom IPFS/Filecoin node that makes it easy to pin IPFS content and make Filecoin deals.
Stars: ✭ 195 (+875%)
Mutual labels:  storage
zedis
A tiny embedded, lock free, redis-like, pub+sub, brokerless, key value datastore. ømq+sled
Stars: ✭ 33 (+65%)
Mutual labels:  kv
skiplist-survey
A comparison of skip lists written in Go
Stars: ✭ 47 (+135%)
Mutual labels:  skiplist
aurora
A Raft based K-V database implemented with cpp.
Stars: ✭ 32 (+60%)
Mutual labels:  kvstore
bitcrust
Bitcoin software suite
Stars: ✭ 61 (+205%)
Mutual labels:  storage
pgrocks-fdw
Bring RocksDB to PostgreSQL as an extension. It is the first foreign data wrapper (FDW) that introduces LSM-tree into PostgreSQL. The underneath storage engine can be RocksDB. The FDW also serves for VidarDB engine, a versatile storage engine for various workloads. See the link for more info about VidarDB engine.
Stars: ✭ 101 (+405%)
Mutual labels:  lsm-tree
sqstorage
A easy to use and quick way to organize your inventory, storages and storage areas
Stars: ✭ 18 (-10%)
Mutual labels:  storage
DL-NC
spiking-neural-networks
Stars: ✭ 34 (+70%)
Mutual labels:  lsm
Bus
Bus 是一个基础框架、服务套件,它基于Java8编写,参考、借鉴了大量已有框架、组件的设计,可以作为后端服务的开发基础中间件。代码简洁,架构清晰,非常适合学习使用。
Stars: ✭ 253 (+1165%)
Mutual labels:  storage
py-skiplist
Pure python implementation of a skiplist data structure
Stars: ✭ 31 (+55%)
Mutual labels:  skiplist
gostore
Storage algorithms.
Stars: ✭ 34 (+70%)
Mutual labels:  lsm
storage
A library to use Web Storage API with Observables
Stars: ✭ 43 (+115%)
Mutual labels:  storage

Pomegranate(石榴)

License: MIT travis-ci

Pomegranate is a tiny and fast log-structured merge-tree written in Rust.

Pomegranate is still under development.

Why Rust?

Because Rust is a memory-safe, concurrency-friendly, high-performance programming language, and it also has rich and modern language features. Based on its feature, I think it is very suitable for the development of storage application.

Design

Memory Buffer

The memory buffer consists of R runs. In the slsm, one run corresponds to one skiplsit. Only one run is activate at any time.

Skiplist

Skiplists are probabilistic data structures that provide for fast search within an orderedsequence of values. ey are composed of decreasingly sparse sorted runs of values thatare set in parallel, so that a search consists of searching a run until a key is found that isgreater than the desired one, then repeating the same process on the next-densest run,until the correct key is found.

Memory Buffer Index

Bloom lters nd important use in the sLSM when pairedone-to-one with runs in memory and on disk.

Disk Storage

The disk-backed store is for more permanent storage and is only touched by merges fromthe memory buffer. ere areLdisk levels, each withDruns on each level. A run isan immutable sequence of sorted key-value pairs, and is captured within one memory-mapped le on disk.

How to run

Note: before you run, you should install Rust and Cargo first.

git clone https://github.com/wellls/Pomegranate.git

cd /path/to/Pomegranate

cargo build

Reference

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].