All Projects → cruzdb → cruzdb

cruzdb / cruzdb

Licence: LGPL-2.1, Unknown licenses found Licenses found LGPL-2.1 LICENSE Unknown COPYING
Append-only key-value database on a distributed shared-log

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
java
68154 projects - #9 most used programming language
shell
77523 projects
python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to cruzdb

iris
Distributed streaming key-value storage
Stars: ✭ 55 (+17.02%)
Mutual labels:  key-value, distributed
Olric
Distributed cache and in-memory key/value data store. It can be used both as an embedded Go library and as a language-independent service.
Stars: ✭ 2,067 (+4297.87%)
Mutual labels:  key-value, distributed
Godown
Distributed, fault-tolerant key-value storage written in go.
Stars: ✭ 352 (+648.94%)
Mutual labels:  key-value, distributed
delta
DDD-centric event-sourcing library for the JVM
Stars: ✭ 15 (-68.09%)
Mutual labels:  distributed, append-only
Js Ipfs
IPFS implementation in JavaScript
Stars: ✭ 6,129 (+12940.43%)
Mutual labels:  immutable, distributed
Diplomat
A HTTP Ruby API for Consul
Stars: ✭ 358 (+661.7%)
Mutual labels:  key-value, distributed
Infinit
The Infinit policy-based software-defined storage platform.
Stars: ✭ 363 (+672.34%)
Mutual labels:  key-value, distributed
dtail
DTail is a distributed DevOps tool for tailing, grepping, catting logs and other text files on many remote machines at once.
Stars: ✭ 112 (+138.3%)
Mutual labels:  log, distributed
Easyflash
Lightweight IoT device information storage solution: KV/IAP/LOG. | 轻量级物联网设备信息存储方案:参数存储、在线升级及日志存储 ,全新一代版本请移步至 https://github.com/armink/FlashDB
Stars: ✭ 1,236 (+2529.79%)
Mutual labels:  log, key-value
Oklog
A distributed and coördination-free log management system
Stars: ✭ 2,937 (+6148.94%)
Mutual labels:  log, distributed
Voik
♒︎ [WIP] An experimental ~distributed~ commit-log
Stars: ✭ 200 (+325.53%)
Mutual labels:  immutable, distributed
Immudb
immudb - world’s fastest immutable database, built on a zero trust model
Stars: ✭ 3,743 (+7863.83%)
Mutual labels:  immutable, key-value
cachegrand
cachegrand is an open-source fast, scalable and secure Key-Value store, also fully compatible with Redis protocol, designed from the ground up to take advantage of modern hardware vertical scalability, able to provide better performance and a larger cache at lower cost, without losing focus on distributed systems.
Stars: ✭ 87 (+85.11%)
Mutual labels:  key-value, distributed
missionlog
🚀 lightweight logging • supports level based filtering and tagging • weighs in at around 500 bytes
Stars: ✭ 19 (-59.57%)
Mutual labels:  log
fp-ts-cheatsheet
FP-TS Cheat Sheet
Stars: ✭ 276 (+487.23%)
Mutual labels:  immutable
DSIN
Deep Image Compression using Decoder Side Information (ECCV 2020)
Stars: ✭ 39 (-17.02%)
Mutual labels:  distributed
Curator
A lightweight key-value file manager written in Swift.
Stars: ✭ 14 (-70.21%)
Mutual labels:  key-value
rosedb
🚀 A high performance NoSQL database based on bitcask, supports string, list, hash, set, and sorted set.
Stars: ✭ 2,957 (+6191.49%)
Mutual labels:  key-value
Abp.Castle.NLog
Abp的NLog日志输出模块。
Stars: ✭ 15 (-68.09%)
Mutual labels:  log
react-redux-immutable-webpack-ssr-starter
React + React-Router 4 + Redux + ImmutableJS + Bootstrap + webpack 3 with with Server side rendering, Hot Reload and redux-devtools STARTER
Stars: ✭ 21 (-55.32%)
Mutual labels:  immutable

CruzDB

Build Status


See https://makedist.com/projects/cruzdb/ for more information.

I love working on CruzDB and plan to resume work sometime in the future. But for now I'm spending 100% of my time building a next-generation storage engine for modern hardware at https://github.com/redpanda-data/redpanda.


CruzDB is a key-value database that stores all its data in a single, high-performance distributed shared-log. The database uses multi-version concurrency control for managing transactions. Each transaction in CruzDB reads from an immutable snapshot of the database. When a transaction finishes, all of the information required to replay the transaction---a reference to the snapshot, and a record of the its reads and writes---are packaged into an object called an intention which is then appended to the log. Any node with access to the log can replay the intentions in the order that they appear in the log, and deterministically reconstruct the database for any past state.

In order to avoid forcing all database nodes from having to store an entire copy of the database, fine-grained materialized views of the are stored in the log. This allows database nodes to selectively cache database state, while still providing on-demand access to any subset of the database by reading from the log.

If you are thinking that this sounds a lot like Hyder, then you're right! Many components of Hyder can be matched to analagous components in CruzDB and CruzDB tends to use the same language. But the systems do have fundamental differences in how the database is structured and how conflict detection is implemented. In the coming weeks we'll be publishing more details about the design of the system, so please stay tuned.

A little background (but a lot has changed since this post):

Build Notes

cmake -DZLOG_INSTALL_DIR=/../ .
make
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].