All Projects → openmessaging → dledger

openmessaging / dledger

Licence: Apache-2.0 license
A raft-based java library for building high-available, high-durable, strong-consistent commitlog.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to dledger

Sharkstore
distributed key - value persisted storage system
Stars: ✭ 165 (-73.17%)
Mutual labels:  raft
6.824
Distributed Systems
Stars: ✭ 35 (-94.31%)
Mutual labels:  raft
blockchain consensus algorithm
代码实现五种区块链共识算法 The code implements five blockchain consensus algorithms
Stars: ✭ 251 (-59.19%)
Mutual labels:  raft
Rafty
Implementation of RAFT consensus in .NET core
Stars: ✭ 182 (-70.41%)
Mutual labels:  raft
raft-badger
Badger-based backend for Hashicorp's raft package
Stars: ✭ 27 (-95.61%)
Mutual labels:  raft
cassem
(WIP) A distributed Configuration Center Application.
Stars: ✭ 23 (-96.26%)
Mutual labels:  raft
Mit 6.824 2018
Solutions to mit 6.824 2018
Stars: ✭ 158 (-74.31%)
Mutual labels:  raft
Distributed-Algorithms
利用 Go 语言实现多种分布式算法
Stars: ✭ 53 (-91.38%)
Mutual labels:  raft
openraft
rust raft with improvements
Stars: ✭ 826 (+34.31%)
Mutual labels:  raft
video features
Extract video features from raw videos using multiple GPUs. We support RAFT and PWC flow frames as well as S3D, I3D, R(2+1)D, VGGish, CLIP, ResNet features.
Stars: ✭ 225 (-63.41%)
Mutual labels:  raft
Sofa Jraft
A production-grade java implementation of RAFT consensus algorithm.
Stars: ✭ 2,618 (+325.69%)
Mutual labels:  raft
Braft
An industrial-grade C++ implementation of RAFT consensus algorithm based on brpc, widely used inside Baidu to build highly-available distributed systems.
Stars: ✭ 2,964 (+381.95%)
Mutual labels:  raft
aurora
A Raft based K-V database implemented with cpp.
Stars: ✭ 32 (-94.8%)
Mutual labels:  raft
Atomix
A reactive Java framework for building fault-tolerant distributed systems
Stars: ✭ 2,182 (+254.8%)
Mutual labels:  raft
nebula-graph
A distributed, fast open-source graph database featuring horizontal scalability and high availability. This is an archived repo for v2.5 only, from 2.6.0 +, NebulaGraph switched back to https://github.com/vesoft-inc/nebula
Stars: ✭ 833 (+35.45%)
Mutual labels:  raft
Uhaha
High Availability Framework for Happy Data
Stars: ✭ 164 (-73.33%)
Mutual labels:  raft
lol
A Raft implementation in Rust language. The name is not a joke.
Stars: ✭ 130 (-78.86%)
Mutual labels:  raft
slock
High-performance distributed sync service and atomic DB
Stars: ✭ 50 (-91.87%)
Mutual labels:  raft
nebula
A distributed, fast open-source graph database featuring horizontal scalability and high availability
Stars: ✭ 8,196 (+1232.68%)
Mutual labels:  raft
raft
An C++ implementation of RAFT consensus algorithm based on jrpc
Stars: ✭ 58 (-90.57%)
Mutual labels:  raft

Introduction

Build Status Maven Central Coverage Status License

A raft-based java library for building high-available, high-durable, strong-consistent commitlog, which could act as the persistent layer for distributed storage system, i.e. messaging, streaming, kv, db, etc.

Dledger has added many new features that are not described in the original paper. It has been proven to be a true production ready product.

Features

  • Leader election
  • Preferred leader election
  • Pre-vote protocol
  • High performance, high reliable storage support
  • Parallel log replication between leader and followers
  • Asynchronous replication
  • State machine
  • Multi-Raft
  • High tolerance of symmetric network partition
  • High tolerance of asymmetric network partition
  • Jepsen verification with fault injection

New features waiting to be added

  • Snapshot (working in progress)
  • Dynamic membership & configuration change
  • SSL/TLS support

Quick Start

Prerequisite

  • 64bit JDK 1.8+

  • Maven 3.2.x

How to Build

mvn clean install -DskipTests

Run Command Line

  • Get Command Usage
java -jar command/target/DLedger.jar

  • Start DLedger Server
nohup java -jar command/target/DLedger.jar server &

  • Append Data to DLedger
java -jar command/target/DLedger.jar append -d "Hello World"

  • Get Data from DLedger

java -jar command/target/DLedger.jar get -i 0

Contributing

We always welcome new contributions, whether for trivial cleanups, big new features. We are always interested in adding new contributors. What we look for are series of contributions, good taste and ongoing interest in the project. If you are interested in becoming a committer, please let one of the existing committers know and they can help you walk through the process.

License

Apache License, Version 2.0 Copyright (C) Apache Software Foundation

FOSSA Status

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].