11 ms·
Lock-free != data corruption. You just use atomic builtins[1] as primitives, instead of mutexes and semaphores. [1] http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc
by coffeemug 17y ago
Lock-free != data corruption. You just use atomic builtins[1] as primitives, instead of mutexes and semaphores.
[1] http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins....
- jrockway 17y agoAre we talking about low-level or high-level locking? I am talking about high-level locking semantics, like transactions.
- cperciva 17y agoAt least as they've announced it so far, RethinkDB is a back-end for MySQL; so you should still have all of MySQL's transactional functionality. (I'm sure Slava will correct me if I'm wrong here...)
- jrockway 17y agoI read over their page more carefully, and I think I see what they mean by "no locks". It means that the database stays internally consistent regardless of read or write order. When you start a transaction, you see the data in the log before you started, but you don't see any changes after you start. Fine. You can get more isolation that this, and you need to to really keep your data consistent, but all DBs except Berkeley seem to have this off by default. So I am not too bothered by this, but I would be interested in seeing how well Rethink handles concurrent OLTP applications that actually care about data integrity. Caring about data integrity is slow, and Rethink might not speed this up all that much. Or it might :)