Skip to content

A linearizability distributed database by raft and wisckey.

License

Notifications You must be signed in to change notification settings

hollyJava2021/AlfheimDB

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AlfheimDB

A linearizability distributed database by raft and wisckey, which supports redis client. The badger is default raft log store, you can use AlfheimDB-WAL instead of it.

Build

This project build by mage, you will need install it at first:

go get github.com/magefile/mage

Execute "mage build" in project dir:

mage build

Test Case

The single node test:

mage initDataDir
mage test single

You can also startup a test cluster, the magefile include a cluster test case:

mage initDataDir
mage test id1
mage test id2
mage test id3

Dependencies

Command Support

String

  • Set
  • Get
  • Incr
  • Del
  • SetNx
  • SetEx
  • Expire
  • TTL
  • Keys

Benchmarks

Macbook pro 13, 2020(M1) SSD

Single node test case

Set/Incr and Get:

./redis-benchmark -p 6379 -t set,get -n 1000000 -q  -c 512
SET: 114850.12 requests per second, p50=2.727 msec                    
GET: 161524.80 requests per second, p50=1.447 msec 

Three node test case

Set/Incr and Get:

./redis-benchmark -p 6379 -t set,get -n 500000 -q  -c 512
SET: 66952.33 requests per second, p50=6.279 msec                    
GET: 161917.09 requests per second, p50=1.447 msec 

Centos 7 8c8g HDD

Single node test case

./redis-benchmark -p 6379 -t set,get -n 500000 -q  -c 512
SET: 40038.44 requests per second, p50=10.431 msec
GET: 100684.66 requests per second, p50=2.423 msec 

Three node test case

Set/Incr and Get:

./redis-benchmark -p 6379 -t set,get -n 500000 -q  -c 1024
SET: 23836.77 requests per second, p50=39.391 msec                    
GET: 92114.96 requests per second, p50=5.375 msec

References

Raft: "Raft: In Search of an Understandable Consensus Algorithm"

Wisckey: "WiscKey: Separating Keys from Values in SSD-conscious Storage"(FAST2016)

Todo List

  • WASM script
  • mage build
  • High performance WAL log
  • Set support
  • Map support
  • ZSet support

About

A linearizability distributed database by raft and wisckey.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy