Live data from Hacker News

Facebook Announces Apollo, a New NoSQL Database for On-line Low Latency Storage

infoq.com

11–20 of 26 posts

Re: Facebook Announces Apollo, a New NoSQL Database for On-line Low Latency Storage

#11
post #9
post #7

Earlier quoted context omitted.

Do you know of a resource for learning the basics CRDTs that doesn't require a PHD?

The name is intimidating, but the operations are simple. Basically, your storage has container types ("T"). A list, a set, a dictionary, etc. Container types can be split and added together in a distributed fashion ("R" and "D"). The "C" in CRDT stands for "Convergent and Commutative" to imply your distributed operations can obtain the same value when merged. Quick example: If you have a node with a key pointing to v…

That's helpful, thanks (I've downloaded some crdt videos to watch in the meantime).

At the surface they sound like something vaguely resembling an abelian group (+/- inverses), but the conflict resolution stuff is the heart of it I'd guess.

Re: Facebook Announces Apollo, a New NoSQL Database for On-line Low Latency Storage

#12
post #7

One of their supported storage primitives is CRDT-based, according to [1]. I, for one, am really interested to see how this works in practice. I've been quite excited about CRDTs, but haven't seen enough examples of them in the wild to get a sense of their drawbacks — for instance, how difficult it is to use them to model various processes or data structures. [1] https://twitter.com/adrianco/status/476843040330743809

Do you know of a resource for learning the basics CRDTs that doesn't require a PHD?

Aral Balkan gave a talk[1] describing WOOT, a CRDT for collaborative editing. Best intro to the idea of how a more complex CRDT works that I've seen. (Really only the last 8 minutes or so are about WOOT. The rest is why he chose it.)

[1] https://www.youtube.com/watch?v=NSTZ4mIv_wk

Re: Facebook Announces Apollo, a New NoSQL Database for On-line Low Latency Storage

#13
> Apollo, Facebook’s Paxos-like NoSQL database ...

> supports anything from a minimum of three servers to thousands

Sorry, you don't run Paxos on thousands of servers. Typical Paxos cluster sizes are 5-7. The algorithm would never converge if you did run it on thousands of servers.

Re: Facebook Announces Apollo, a New NoSQL Database for On-line Low Latency Storage

#14
post #7

One of their supported storage primitives is CRDT-based, according to [1]. I, for one, am really interested to see how this works in practice. I've been quite excited about CRDTs, but haven't seen enough examples of them in the wild to get a sense of their drawbacks — for instance, how difficult it is to use them to model various processes or data structures. [1] https://twitter.com/adrianco/status/476843040330743809

Do you know of a resource for learning the basics CRDTs that doesn't require a PHD?

I found this to be really useful -

http://research.microsoft.com/apps/video/default.aspx?id=153...

Re: Facebook Announces Apollo, a New NoSQL Database for On-line Low Latency Storage

#15

> Apollo, Facebook’s Paxos-like NoSQL database ... > supports anything from a minimum of three servers to thousands Sorry, you don't run Paxos on thousands of servers. Typical Paxos cluster sizes are 5-7. The algorithm would never converge if you did run it on thousands of servers.

It's sharded, dude. You may want (typically) 3, 5 or 7 machines per shard for redundancy and failover, but there's no limit on the number of shards you may want to have.

Re: Facebook Announces Apollo, a New NoSQL Database for On-line Low Latency Storage

#16
post #11
post #9

Earlier quoted context omitted.

The name is intimidating, but the operations are simple. Basically, your storage has container types ("T"). A list, a set, a dictionary, etc. Container types can be split and added together in a distributed fashion ("R" and "D"). The "C" in CRDT stands for "Convergent and Commutative" to imply your distributed operations can obtain the same value when merged. Quick example: If you have a node with a key pointing to v…

That's helpful, thanks (I've downloaded some crdt videos to watch in the meantime). At the surface they sound like something vaguely resembling an abelian group (+/- inverses), but the conflict resolution stuff is the heart of it I'd guess.

Yes, from my (limited but growing) understanding of it, they are indeed similar to abelian groups.

Re: Facebook Announces Apollo, a New NoSQL Database for On-line Low Latency Storage

#17

> Apollo, Facebook’s Paxos-like NoSQL database ... > supports anything from a minimum of three servers to thousands Sorry, you don't run Paxos on thousands of servers. Typical Paxos cluster sizes are 5-7. The algorithm would never converge if you did run it on thousands of servers.

[deleted]

Re: Facebook Announces Apollo, a New NoSQL Database for On-line Low Latency Storage

#18

One of their supported storage primitives is CRDT-based, according to [1]. I, for one, am really interested to see how this works in practice. I've been quite excited about CRDTs, but haven't seen enough examples of them in the wild to get a sense of their drawbacks — for instance, how difficult it is to use them to model various processes or data structures. [1] https://twitter.com/adrianco/status/476843040330743809

it seems that CRDT are just another face, or an implementation, of the CALM :

http://www.bloom-lang.net/calm/

"Informally, a block of code is logically monotonic if it satisfies a simple property: adding things to the input can only increase the output. "

http://db.cs.berkeley.edu/papers/cidr11-bloom.pdf

" A sufficient condition for eventual consistency is order independence ..."

Re: Facebook Announces Apollo, a New NoSQL Database for On-line Low Latency Storage

#19

> Apollo, Facebook’s Paxos-like NoSQL database ... > supports anything from a minimum of three servers to thousands Sorry, you don't run Paxos on thousands of servers. Typical Paxos cluster sizes are 5-7. The algorithm would never converge if you did run it on thousands of servers.

Well, I wouldn't judge the software on the basis of the article. The words "Paxos-like database" are enough of a tip-off that it's not exactly going for rigorous technical accuracy.

Re: Facebook Announces Apollo, a New NoSQL Database for On-line Low Latency Storage

#20
post #11

Earlier quoted context omitted.

That's helpful, thanks (I've downloaded some crdt videos to watch in the meantime). At the surface they sound like something vaguely resembling an abelian group (+/- inverses), but the conflict resolution stuff is the heart of it I'd guess.

Yes, from my (limited but growing) understanding of it, they are indeed similar to abelian groups.

CRDTs are, in the basic case, a idempotent commutative monoid, aka an idempotent abelian monoid.

If this floats your boat, here's me on CRDTs: https://skillsmatter.com/skillscasts/5301-convergent-replica...

Post reply on HN