Hacker News new | ask | show | jobs
by simon_acca 3548 days ago
"RethinkDB operations are never atomic across multiple keys. For this reason, RethinkDB cannot be considered an ACID database."

source: https://rethinkdb.com/docs/consistency/

However, certain operations on a single key, like incrementing a counter, are atomic.

1 comments

I wish they had added transactions. It seems like such an important feature.
ACID correct distributed transactions create very, very painful performance problem because you have to lock across multiple physical machines separated by network connection(s).

Or y'know, you just don't do them correctly and accept a substantial rate of quietly corrupted data.

There isn't really a good option unless you have absurd amounts of money compared to your transaction volume.

ACID correct distributed transactions are possible. Google's F1 paper shows how: https://static.googleusercontent.com/media/research.google.c...

Very, very painful problems are very, very valuable.

They are possible but they are not possible to make per formant compared to the alternative.

Google falls under the "absurd amount of money" camp.

> Protocol Buffers have performance implications for query processing. First, we always have to fetch entire Protocol Buffer columns from Spanner, even when we are only interested in a small subset of fields.

There are a number of performance costs documented in the paper. Simply because you can solve it via money doesn't mean it works for all situations.