3 ms·
Actually for MySQL it depends on the storage engine, what you described is how InnoDB works. MyRocks storage, however, only appends data, and requires regular
by dikei 6y ago
Actually for MySQL it depends on the storage engine, what you described is how InnoDB works.
MyRocks storage, however, only appends data, and requires regular Compaction to clean up old rows, similar to Postgres VACUUM.
- petergeoghegan 6y agoYour point about MyRocks is a good one. It's also true that MyRocks takes a similar approach to Postgres when it comes to implementing the higher isolation levels. It wouldn't make sense to add InnoDB style next-key locks to MyRocks, either. Systems that closely adhere to traditional 2PL designs such as InnoDB or DB2 end up with tight coupling between recovery, concurrency control, and storage. This has many consequences, both good and bad. It's no coincidence that Postgres can support quite a variety of index access methods, including support for transactional full text search. You get the transactional stuff "as standard" with the Postgres approach to versioned storage. There is no need to bake concurrency control into each and every index access method.
- luhn 6y agoYeah, I should have specified that. Thanks for mentioning it.