Skip to content

A raft-based java library for building high-available, high-durable, strong-consistent commitlog.

License

Notifications You must be signed in to change notification settings

jamestiotio/dledger

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A raft-based java library for building high-available, high-durable, strong-consistent commitlog.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%