Live data from Hacker News

Doozer: a consistent, highly-available data store from Heroku labs

xph.us

1–10 of 15 posts

Re: Doozer: a consistent, highly-available data store from Heroku labs

#2
(Reposting my blog comment here)

"I mean primarily the ability to face a network partition and continue providing write service to all clients transitively connected to a majority of servers. Secondarily, I mean the ability to continue providing read-only service to all clients connected to any server."

A truly available system, in the sense of CAP, allows writes, not just reads, even under partition, even for clients not connected to the "majority" nodes. This leads inevitably to the need for conflict detection and resolution, and that whole "eventually consistent" thing. What you are describing is very useful, hence the existence of things like Chubby and ZK, but is most definitely not "available", per CAP.

Folks might also be interested in the classic paper on constructing locks from low level primitives like CAS, Herlihy's 'Wait-free Synchronization" http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=A01...

Re: Doozer: a consistent, highly-available data store from Heroku labs

#5
post #4

What happens when you CAS the same key from two sides of a network partition and the partitions rejoin?

As explained in the post, the minority side of the partition is not writable.

Ahh I see it's in the extra small note at the bottom

"I mean primarily the ability to face a network partition and continue providing write service to all clients transitively connected to a majority of servers."

Probably should be a little more prominent considering it's one of the first questions you'd want answered but I was a bit careless to miss it.

Re: Doozer: a consistent, highly-available data store from Heroku labs

#8
post #7

Cool. Is the consensus algorithm straight-up Paxos, or are there modifications? The Paxos Made Live [1] paper from Google raised some interesting issues. [1] http://labs.google.com/papers/paxos_made_live.html

Yes, it is Paxos. We have a post coming up about it.

Re: Doozer: a consistent, highly-available data store from Heroku labs

#9
post #7

Cool. Is the consensus algorithm straight-up Paxos, or are there modifications? The Paxos Made Live [1] paper from Google raised some interesting issues. [1] http://labs.google.com/papers/paxos_made_live.html

Yes, it is Paxos. We have a post coming up about it.

Great, looking forward to it.

Re: Doozer: a consistent, highly-available data store from Heroku labs

#10
There are a number of other systems that allow this same approach of consistency and high availability. For example, Cassandra, which is freely available (as required by the poster), appears to be able to give you this behavior if you set ConsistencyLevel to QUORUM.

Clustrix, the company I work for, offers a full SQL data store with similar quorum semantics. However, it's not free.

Google Megastore allows similar consistency semantics (with its own data model) in a cross data center "cloud" fashion. It's also not free, but it would probably be suitable for some set of Heroku customers, particularly if they're already using Google App Engine.

Post reply on HN