> The only requirement is that if F is the number of unreachable nodes you wish to be able to tolerate, then your minimum cluster size is 2*F + 1.
> Currently no other data store that I'm aware of offers this flexibility.<p>It isn't true. There're plenty of storages with same strong consistency model (tolerates F failures of 2F+1 nodes), among them are Cassandra with lightweight transactions, Riak with consistent buckets, CockroachDB and ZooKeeper.<p>> However, GoshawkDB has a radically different architecture to most databases and its object-store design means that contention on objects can be dramatically reduced, allowing the performance impact of strong-serializability to be minimised.<p>Can you please describe the algorithm that you use for implementing distributed transactions?<p>> just three network delays occur (and one fsync) before the outcome of the transaction is known to that node<p>3 round trips for per transaction is the result which is very similar to the Yabandeh-style transaction, see the Cockroach's blog for details - <a href="http://www.cockroachlabs.com/blog/how-cockroachdb-distributes-atomic-transactions/" rel="nofollow">http://www.cockroachlabs.com/blog/how-cockroachdb-distribute...</a><p>Do you use the same approach?