Live data from Hacker News

Call Me Maybe: MongoDB Stale Reads

aphyr.com

71–80 of 150 posts

Re: Call Me Maybe: MongoDB Stale Reads

#71
post #17
post #15

Earlier quoted context omitted.

It seems easier to me to just go with a reputable database vendor.

That island of safety is a rapidly shrinking one. Jepsen covers more ground with each new post from Kyle. :)

I wonder why the jeppsen test for Cassandra was deleted (or moved) https://aphyr.com/posts/294-call-me-maybe-cassandra/

Re: Call Me Maybe: MongoDB Stale Reads

#72
post #71
post #17

Earlier quoted context omitted.

That island of safety is a rapidly shrinking one. Jepsen covers more ground with each new post from Kyle. :)

I wonder why the jeppsen test for Cassandra was deleted (or moved) https://aphyr.com/posts/294-call-me-maybe-cassandra/

That link works for me--what's supposed to be missing?

Re: Call Me Maybe: MongoDB Stale Reads

#73
post #71

Earlier quoted context omitted.

I wonder why the jeppsen test for Cassandra was deleted (or moved) https://aphyr.com/posts/294-call-me-maybe-cassandra/

That link works for me--what's supposed to be missing?

My link works, but many of the links in the article itself no longer exist

Re: Call Me Maybe: MongoDB Stale Reads

#74
post #47

Does anyone have any references on how you could write a distributed database that met all ACID properties? Surely there's an academic paper that says that if you do A then B then C, you are guaranteed a certain level of consistency. We've developed a type of distributed database at my company, and I think it's pretty solid, but I need a broader familiarity with the available theory.

Aside from reading papers, it's a good idea to look through the syllabus of a distributed systems course to get a broad idea of what the problem space looks like.

Academic papers will talk about "minimal" problems like consensus, or desirable properties like sequential consistency, and expect you to already know why those concepts are important. If your experience is mostly hands-on, it may not be obvious how it all applies to real-world systems.

Say you have a complex distributed database. Forget all the bells and whistles: can it solve the problem of allowing a set of processes to reliably agree on a single Boolean value? If so, then you're trying to provide the same consistency guarantees as Paxos/Raft. So if your architecture is substantially simpler than Raft, then either you've come up with something really ingenious, or you've missed some edge cases.

Re: Call Me Maybe: MongoDB Stale Reads

#75
post #73

Earlier quoted context omitted.

That link works for me--what's supposed to be missing?

My link works, but many of the links in the article itself no longer exist

From the looks of it, they're now under a branch called 'old'

https://github.com/aphyr/jepsen/tree/old

Re: Call Me Maybe: MongoDB Stale Reads

#76
post #68
post #23

Question: How do I actually run Kyle's tests to see this for myself? (Not that I don't believe him, I just want to play around a bit.) When I run `lein install` and then `lein test`, I get: ╰─▶ ψ lein test Exception in thread "main" java.io.FileNotFoundException: Could not locate jepsen/db__init.class or jepsen/db.clj on classpath: , compiling:(mongodb/core.clj:1:1) at clojure.lang.Compiler.load(Compiler.java:7142) a…

Update the version of the "jepsen" dependency in project.clj to 0.0.3. You'll need to do this for each of the test projects you want to run. FWIW, this was filed the other day: https://github.com/aphyr/jepsen/issues/52

Ah, that explains it! Thanks.

Re: Call Me Maybe: MongoDB Stale Reads

#77
post #22

Earlier quoted context omitted.

Has there been any CP system passing a call-me-maybe test first time apart from Zookeeper [1]? [1] https://aphyr.com/posts/291-call-me-maybe-zookeeper

HBase. With the caveats that it's piggy backing off the success of Zookeeper, and the tests were not run by Kyle himself: https://eng.yammer.com/call-me-maybe-hbase/

Note that Robert Yokota's addendum[1] points out that HBase "cannot achieve both consistency and availability." His earlier results did not take into account that HBase clients continuously retry failed ops. (According to Nicolas Liochon, upon its death a server's regions are moved to another node.) Failures start rolling in once network partition(s) extend beyond the configured timeout. Kyle [2] was not impressed:

"During the network partition, no requests are successful" is not the best result for a CP system, IMO."

HBase should provide partial availability in the face partitions.

[1] http://eng.yammer.com/call-me-maybe-hbase-addendum/

[2] https://twitter.com/aphyr/status/509841011816665088

Re: Call Me Maybe: MongoDB Stale Reads

#78
post #41

Earlier quoted context omitted.

Actually, just use Riak. Those people know distributed bases. https://aphyr.com/posts/285-call-me-maybe-riak Now I hear they support consistency as well.

I think at one point the employees of Basho knew how to write distributed DBs - Riak is the most advanced AP DB from a distributed systems theory perspective. However, in recent months, their CEO, CTO and Chief Architect have left, as well as many of their prominent engineers. Worryingly, the new CTO seems content to make inane comments about "Data Gravity" [0]. [0] - http://www.kdnuggets.com/2015/03/interview-dave-m…

That was a year ago and they seem to be doing fine since.

Re: Call Me Maybe: MongoDB Stale Reads

#79

Maybe we should listen to Larry Ellison when he say "gimme my money!"

Has Oracle been run through this test battery?

Or would publishing the results of doing so bring down an army of Larry's lawyering henchmen? "You violated the EULA, now you must pay! You will only wish you were dead when we are done with you, bwahahhahahaha!"

Re: Call Me Maybe: MongoDB Stale Reads

#80
post #37

Earlier quoted context omitted.

Indeed, database vendors should aim to have their software "Jepsen certified".

Agreed! As an example, HashiCorp included Jepsen test results in their Consul documentation: https://consul.io/docs/internals/jepsen.html

As Kyle himself mentioned (I think it might even be in relation to this document), Jepsen cannot prove that your software is safe, only prove that it isn't.

He even called them out for modifying timeout value to pass the tests[1].

[1] https://aphyr.com/posts/316-call-me-maybe-etcd-and-consul

Post reply on HN