GitHub - prologic/bitraft: A Bitcask Distributed Key/Value store using Raft for...
source link: https://github.com/prologic/bitraft
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
bitraft
A Bitcask Distributed Key/Value store using Raft for concensus with a Redis compatible API written in Go.
Based off of kvnode. (See LICENSE.old)
- Redis compatible API
- Bitcask disk-based storage
- Raft support with Finn commands
- Compatible with existing Redis clients
Commands:
SET key value
GET key
DEL key [key ...]
KEYS [WITHVALUES]
FLUSHDB
SHUTDOWN
Backup and Restore
To backup data:
RAFTSNAPSHOT
This will creates a new snapshot in the data/snapshots
directory.
Each snapshot contains two files, meta.json
and state.bin
.
The state file is the database in a compressed format.
The meta file is details about the state including the term, index, crc, and size.
Ideally you call RAFTSNAPSHOT
and then store the state.bin on some other server like S3.
To restore:
- Create a new raft cluster
- Download the state.bin snapshot
- Pipe the commands using the
bitraft --parse-snapshot
andredis-cli --pipe
commands
Example:
bitraft --parse-snapshot state.bin | redis-cli -h 10.0.1.5 -p 4920 --pipe
This will execute all of the state.bin
commands on the leader at 10.0.1.5:4920
For information on the redis-cli --pipe
command see Redis Mass Insert.
License
bitraft source code is available under the MIT License.
Previously based off of kvnode. (See LICENSE.old)
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK