5 ms·
FaunaDB’s consistency model is very different than CouchDB. (Disclosure, I’m one of the early contributors to CouchDB and work at Fauna.) More about the FaunaD
by jchanimal 9y ago
FaunaDB’s consistency model is very different than CouchDB. (Disclosure, I’m one of the early contributors to CouchDB and work at Fauna.)
More about the FaunaDB consistency model here. https://fauna.com/blog/consistent-transactions-in-a-globally-distributed-database https://fauna.com/blog/consistent-transactions-in-a-globally...
- cocktailpeanuts 9y agoDoes it matter in the context of this comment thread? I'm sure you guys have built a damn good bottled water, but it ain't orange juice.
- jchanimal 9y agoYes. The point of the post is that with global ACID, distributed ledgers among trusted parties are just regular applications. You can’t do this with eventually consistent databases. What I’m describing is a genuine solution our customers are choosing FaunaDB for. For their distributed ledger requirements, a blockchain is overkill.
- eternalban 9y agoAnd the point of the GP was that that does not address the OP point that it is "just a distributed database"
- jchanimal 9y agoA distributed database with global consistency, which is a new category. FaunaDB (and similar databases) allows a distributed ledger among trusted parties to be “just a database application.”
- hossbeast 9y agoGreat. Just take the word blockchain out of the article, it adds nothing but confusion.
- epistasis 9y agoI disagree, with the number of people pushing blockchain when they just want a distributed ledger, an article like this is quite helpful.
- userpass 9y agoSo you're telling me... it's a distributed database? Global consistency is nothing new.
- pg_is_a_butt 9y agoIf you have many databases all attempting high volume conflicting ACID transactions constantly, it would seem eventually consistent is better than never commit a single transaction.
- shub 9y agoHow does FaunaDB guarantee that all partitions of a transaction commit or abort? The Calvin paper just says "see here for our distributed pessimistic locks that make this not a problem" but if FaunaDB uses oplocks then that doesn't apply.
- freels 9y agoIn FaunaDB all transaction resolution is deterministic. Once global log order is determined, partitions will wait for the transaction inputs at the correct version and will each independently come up with an identical result.
- shub 9y agoSo the input log isn't partitioned? I'm going off of https://fauna.com/blog/consistent-transactions-in-a-globally-distributed-database https://fauna.com/blog/consistent-transactions-in-a-globally... which states > Each database has a single partitioned RAFT-replicated log that is used to derive a total order of all transaction effects, and that handles all cross-region network communication. But if each partition knows about all the reads in a transaction and verifies all the timestamps, that sounds workable. Not that I'm in any way qualified to pass judgment on something like this, but I feel like I have a little bit of understanding. Overall it sounds really cool and the idea of agreeing on inputs instead of outputs is tremendously clever.
- freels 9y agoAdmittedly, the specific mechanics of how the log interacts with data partitions was glossed over a bit in that post. However, to answer your question, the input log is partitioned: Transactions for each epoch are striped across the log partitions. A data partition will need to read a batch from each log partition in order to be able to process the transactions for any given epoch.