Awesome
Raft-based Key/Value Store
This is a tiny key/value store based on Ra developed to be used in certain integration tests. It is not meant to be a general purpose project.
Usage
Start the HTTP API:
$ make run
Use HTTPie to play with the KV store. Retrieving a value:
$ http GET http://localhost:8080/1
HTTP/1.1 404 Not Found
content-length: 9
content-type: text/plain
date: Wed, 13 Jun 2018 07:12:15 GMT
server: Cowboy
undefined
Setting a value:
$ http -f PUT http://localhost:8080/1 value=1
HTTP/1.1 204 No Content
date: Wed, 13 Jun 2018 07:12:28 GMT
server: Cowboy
Getting the value back:
$ http GET http://localhost:8080/1
HTTP/1.1 200 OK
content-length: 1
content-type: text/plain
date: Wed, 13 Jun 2018 07:12:34 GMT
server: Cowboy
1
Comparing-and-swapping a value, success case:
$ http -f PUT http://localhost:8080/1 value=2 expected=1
HTTP/1.1 204 No Content
date: Wed, 13 Jun 2018 07:13:02 GMT
server: Cowboy
Comparing-and-swapping a value, failure case:
$ http -f PUT http://localhost:8080/1 value=2 expected=1
HTTP/1.1 409 Conflict
content-length: 1
date: Wed, 13 Jun 2018 07:13:08 GMT
server: Cowboy
2
Jepsen test
See the readme.
License
RA KV Store is Apache 2.0 licensed.
Copyright 2018-2023 Broadcom. All Rights Reserved. The term Broadcom refers to Broadcom Inc. and/or its subsidiaries.