top | item 12544187

(no title)

robinson_k | 9 years ago

CouchDB is eventually consistent and does not guarantee consistency. Would a Jepsen test make sense?

discuss

order

SEJeff|9 years ago

Yes. Eventual consistent doesn't mean inconsistent, but eventually it will be. That means under a network partition (P of th CAP Theorem) things should converge after the network converges. This is precisely the type of semantic that Aphyr wrote Jepsen for. See his testing of Cassandra (eventually consistent) or the CockroachDB team (eventually consistent) or Risk (eventually consistent) running Jespsen to prove things work as expected.

SEJeff|9 years ago

And by Risk I meant Riak but didn't notice it in time to edit the comment (sorry).

spotman|9 years ago

On their site they do say however: "And we care a lot about your data. CouchDB has a fault-tolerant storage engine that puts the safety of your data first."

So, yeah, I think even if eventually consistent, and not immediately consistent, they want you to feel they have taken care of your data when designing the thing, so seems prudent to do.

haimez|9 years ago

As a rule, yes. I'm not at all an expert on (or even all that familiar with) CouchDB, but if you make any guarantees at all about your distributed storage engine, then those guarantees are somehow testable.