Skip to content

rocketbitz/raft-hyperleveldb

Repository files navigation

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

About

Raft backend using InfluxData's HyperLevelDB

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages