Live data from Hacker News

Which modern databases support ACID transactions?

foundationdb.com

31–40 of 55 posts

Re: Which modern databases support ACID transactions?

#31

> 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

Transactional DDL is a dangerous game with any DBMS. You must know the idioms of the systems you use, and use them accordingly. You would be a fool otherwise.

Re: Which modern databases support ACID transactions?

#32

Where is Datomic?

From what I understand, Datomic sidesteps the ACID issue altogether by dealing with immutable data at the application layer. You add your changes on top of a version of the database, so you're always working on a consistent view of the database (pretty much like Git).

On the backend, Datomic doesn't implement it's own storage, it plugs into SQL databases, Riak, etc. so you may or may not have ACID at that level.

Re: Which modern databases support ACID transactions?

#35

Am I wrong in thinking that [Neo4j]( http://www.neo4j.org/ ) supports fully ACID compliant transactions?

By default, Neo4J is not ACID compliant as it works mainly in memory, which fails the Durability part of ACID. I am not event sure that if you would configure it to be in sync with its stored replica, it would pass ACID test due to how Java handle the files internally.

Re: Which modern databases support ACID transactions?

#37
post #24

> 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

MySQL isn't the only engine that does this. http://docs.oracle.com/cd/E17952_01/refman-5.1-en/implicit-c... Edit - I was wrong! Not only did I link to the wrong docs, but Oracle fixed what I considered to be a longstanding bug. Thanks to those who pointed it out. For a very, very long time, Oracle has enforced implicit transaction boundaries around DDL, and it is about time that finally changed.

Those docs look like they're MySQL docs, not Oracle Database docs. Stackoverflow suggests[1] that as-of Oracle Database 11g Release 2, DDL changes are isolated within the current transaction.

--

[1] http://stackoverflow.com/questions/4692690/is-it-possible-to...

Re: Which modern databases support ACID transactions?

#38
post #24

> 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

MySQL isn't the only engine that does this. http://docs.oracle.com/cd/E17952_01/refman-5.1-en/implicit-c... Edit - I was wrong! Not only did I link to the wrong docs, but Oracle fixed what I considered to be a longstanding bug. Thanks to those who pointed it out. For a very, very long time, Oracle has enforced implicit transaction boundaries around DDL, and it is about time that finally changed.

That link is to a page from the MySQL 5.1 reference manual.

As of about 4 years ago Oracle's been the owners of MySQL, so that's the reason why you're seeing it hosted at docs.oracle.com.

Re: Which modern databases support ACID transactions?

#40

What about RethinkDB?

From RethinkDB FAQ ( http://www.rethinkdb.com/faq/ ) "RethinkDB is not a good choice if you need full ACID support or strong schema enforcement — in this case you are better off using a relational database such as MySQL or PostgreSQL."

Yes, but I was more thinking where was the mention -- while it's not particularly good for ACID properties I like rethinkdb, as a nosql DB
Post reply on HN