I like the Zookeeper paper concerns: throughput, latency, varied read/write dominated workloads.
I think we need to measure in the presence of failures and demonstrate the invariants are not violated also.
We can do this by randomly dropping messages in the broadcast proxy nodes, and also by killing processes at interesting times in artificially scripted scenarios (deterministic would be ideal, but not sure if possible).
Basho bench is giving nice graphs so let's stick with that.
As in chat:
Make the lock service app (replicas, in van renesse's paper). Start with just 1 of them, and it will just use its message buffer as the queue/lock. No FT; centralised lock.
then we get the state machine thing working
compare the 2 by measurement
measure alternative dist state machine options: disk FT, garbage collection, etc
I like the Zookeeper paper concerns: throughput, latency, varied read/write dominated workloads.
I think we need to measure in the presence of failures and demonstrate the invariants are not violated also.
We can do this by randomly dropping messages in the broadcast proxy nodes, and also by killing processes at interesting times in artificially scripted scenarios (deterministic would be ideal, but not sure if possible).