Skip to content

Latest commit

 

History

History
31 lines (25 loc) · 1.36 KB

README.md

File metadata and controls

31 lines (25 loc) · 1.36 KB

raft-hyperleveldb

Raft backend using HyperDex's HyperLevelDB

Use Case

Drop it in instead of BoltDB if your workload is highly concurrent and write intensive. See their writeup for more details

Example

logStore, _ := rafthyperleveldb.NewHyperLevelDBStore("/path/to/raft/db", rafthyperleveldb.High)

myRaft, _ := raft.NewRaft(config, (*fsm)(c), logStore, logStore, snapshots, transport)

Benchmark

HyperLevelDB:

BenchmarkHyperLevelDBStore_FirstIndex-8          1000000              1031 ns/op
BenchmarkHyperLevelDBStore_LastIndex-8           1000000              1477 ns/op
BenchmarkHyperLevelDBStore_GetLog-8              2000000               935 ns/op
BenchmarkHyperLevelDBStore_StoreLog-8             200000              9662 ns/op
BenchmarkHyperLevelDBStore_StoreLogs-8            100000             17323 ns/op
BenchmarkHyperLevelDBStore_DeleteRange-8          100000             19645 ns/op
BenchmarkHyperLevelDBStore_Set-8                  200000              9936 ns/op
BenchmarkHyperLevelDBStore_Get-8                 2000000               795 ns/op
BenchmarkHyperLevelDBStore_SetUint64-8            200000              9086 ns/op
BenchmarkHyperLevelDBStore_GetUint64-8           2000000               856 ns/op

Remarks

Credit to https://github.com/tidwall/raft-leveldb for the original raft-leveldb