Live data from Hacker News

Which modern databases support ACID transactions?

foundationdb.com

1–10 of 55 posts

Re: Which modern databases support ACID transactions?

#5
VoltDB uses a partitioned data model. For OLTP apps that fit within that model, it's incredibly fast and there's no global transaction. For transactions that span partitions, yes, there is a lock. If your app fits the model (and a lot of transaction processing does), then it's quite amazing. For instance, one model I've played with is updating customer balances in realtime. If I partition everything on CustomerId, then I can insert new charges and update balances at extremely high rates (over 50Ktps per node, at least).

If your app requires (edit: a significant amount of) transactions that have no locality, that is multiple arbitrary rows might be updated in any transaction, VoltDB might not be for you.

If I understand Spanner, it, too, has a somewhat-partitioned model, with parent/child relationships, correct?

Re: Which modern databases support ACID transactions?

#7

VoltDB uses a partitioned data model. For OLTP apps that fit within that model, it's incredibly fast and there's no global transaction. For transactions that span partitions, yes, there is a lock. If your app fits the model (and a lot of transaction processing does), then it's quite amazing. For instance, one model I've played with is updating customer balances in realtime. If I partition everything on CustomerId, th…

Spanner can do partition-spanning transactions with a useful throughput.

Re: Which modern databases support ACID transactions?

#8
> MySQL provides ACID transactions on a single machine

That made me chortle. If you can't roll back an `ALTER TABLE` command (e.g., to back out of a failed schema migration), you don't really have good ACID semantics. Here's a list of other fun MySQL commands that sidestep transactions: http://dev.mysql.com/doc/refman/5.5/en/implicit-commit.html

Re: Which modern databases support ACID transactions?

#9
> RavenDB uses a weak form of isolation called "snapshot isolation". ... Index updates are not Atomic.

If MVCC (http://en.wikipedia.org/wiki/Multiversion_concurrency_contro...) is "weak", then are they claiming read/write locks are better?

Also, to nitpick, RavenDB's reads/writes in the document storage engine are entirely atomic. A lucene index is maintained in a secondary store which is eventually consistent. But as a document store supports ACID transactions.

Post reply on HN