Jing Yang 93f6b20b3f Update dependencies. 9 ماه پیش
..
src 23c826e6f9 Move raft code into its own directory. 2 سال پیش
Cargo.lock 93f6b20b3f Update dependencies. 9 ماه پیش
Cargo.toml f5ff46482a Update Cargo.lock in durio. 2 سال پیش
README.md 27abdaee17 Add a README for durio. 4 سال پیش
build.sh 847feb248e Fix durio build after the project structure change. 2 سال پیش
curl.sh f3059b79ff Create a two-pi-plus-dev setup for durio. 4 سال پیش
pi-setup-notes.md b551bac311 Add Pi setup instructions. 4 سال پیش
run_smoke_test.sh 23c826e6f9 Move raft code into its own directory. 2 سال پیش
setup-build-debian.sh 4d0f07bc7e Add a script to prepare a debian machine to cross build durio. 2 سال پیش

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.