|
@@ -0,0 +1,14 @@
|
|
|
|
|
+# kvraft
|
|
|
|
|
+
|
|
|
|
|
+`kvraft` is a distributed KV store. Both the keys and the values are strings. `Put`, `Get` and `Append` operations are
|
|
|
|
|
+supported.
|
|
|
|
|
+
|
|
|
|
|
+`kvraft` provides a consistent view of the managed data to each client. It relies on all clients to be nice
|
|
|
|
|
+and to follow a certain protocol when talking to it. For example, each client should send no more than one request at the
|
|
|
|
|
+same time. Clients are identified by a unique ID number. Each client must register its ID number before sending
|
|
|
|
|
+requests. Multiple clients can co-exist within the same thread or process. There are no consistency guarantees between
|
|
|
|
|
+different clients.
|
|
|
|
|
+
|
|
|
|
|
+Clients can use the [client side library][client.rs] to talk to a `kvraft` cluster.
|
|
|
|
|
+
|
|
|
|
|
+[client.rs]: https://github.com/ditsing/ruaft/blob/master/kvraft/src/client.rs
|