Jing Yang 44774c320f Drop the Arc requirement of Persister. 3 rokov pred
..
src 44774c320f Drop the Arc requirement of Persister. 3 rokov pred
Cargo.lock 86a564d441 Run `cargo update` on durio. 3 rokov pred
Cargo.toml c8fa496d8a Move durio to its own workspace. 3 rokov pred
README.md 27abdaee17 Add a README for durio. 4 rokov pred
build.sh 5a3f8d70f9 Update the build script for debian. 3 rokov pred
curl.sh f3059b79ff Create a two-pi-plus-dev setup for durio. 4 rokov pred
pi-setup-notes.md b551bac311 Add Pi setup instructions. 4 rokov pred
run_smoke_test.sh 8bc2df1990 Remove test logger from durio. 3 rokov pred

README.md

durio

durio is a distributed KV store that comes with a simple HTTP interface. I run it on Raspberry Pis. In this repo you can find scripts (build.sh, curl.sh) and notes (pi-setup-notes) to help build, run and test durio on Raspberry Pis.

By default durio has 3 replicas. Each replica has a web server, a KV server and a raft instance behind it. The 3 web servers talk to all KV servers, while each KV server only talks to the raft instance in the same process.

durio relies on warp to provide the web server, and tarpc to run the RPC services.

Clients

Clients connected to one web server get a consistent (linearizable) view of the data stored in the KV store. The web servers can accept multiple incoming requests. At any given time, at most one request will be sent to the leading KV server. That limits the amount of data one web server can process.