I have been reading the Paxos paper, the FLP theorem etc. recently and evaluating Apache Zookeeper for a project. I have also been going thru Chubby (Google's distributed locking service) and the various literature on it that is available online. My fundamental usecase for Zookeeper is to implement replication and general coordination for a distributed system. 

I was just wondering though, what is the specific advantage that Zookeeper or a Chubby like distributed locking system brings to the table. Basically I am just wondering why I can't just use a MySQL NDB Cluster. I keep hearing that MySQL has a lot of replication issues. I was hoping some with more experience on the subject might shed some light on it.

Thanks in advance..

A simplistic listing of my requirements :

* I have a homogeneous distributed system.
* I need some means of maintaining consistent state across all my nodes.
* My system exposes a service, and interaction with clients will lead to some change in collective state of my system.
* High availability is a goal, thus a node going down must not affect the service.
* I expect the system to service atleast a couple of 1000 req/sec.
* I expect the collective state of the system to be bounded in size (basically inserts/deletes will be transient... but in steady state, i expect lots of updates and reads)