/openmessaging-storage-dledger

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

Primary LanguageJavaApache License 2.0Apache-2.0

Introduction

Build Status 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.

It introduces only two major apis:

  • append(data)
  • get(index)

Here is a Chinese introduction.

Quick Start

Prerequisite

  • 64bit JDK 1.8+;
  • Maven 3.2.x

Build

mvn clean install -DskipTests

Run Command Line

## Get Command Usage
java -jar target/DLedger.jar

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

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

## Get Data from DLedger
java -jar target/DLedger.jar get -i 0

RoadMap

  • Preferred Leader Election
  • Manually Configured Leader
  • Automatically Degenerated to Master Slave Architecture
  • Jepsen Integration

Contributing

We always welcome new contributions, whether for trivial cleanups, big new features or other material rewards.