zlacker

[parent] [thread] 2 comments
1. jabl+(OP)[view] [source] 2023-04-27 08:30:30
1. It's a backward delta. So it's only needed when a transaction touches a row that has been modified by a concurrently running transaction. (Details differing depending on isolation level etc.). Writes can be faster because only the modified attributes need to be written to the delta undo log, not the whole row. I guess reads can be faster too in some cases, e.g. less fragmentation and wasted space (better cache usage,) over time due to in-place updates, and less pointer chasing to find the correct version if the vacuuming isn't keeping up with pruning old versions.

As for MySQL and locks, the original MyISAM table format used locks, but InnoDB tables are MVCC like pgsql.

replies(1): >>avinas+p63
2. avinas+p63[view] [source] 2023-04-28 02:27:44
>>jabl+(OP)
> Writes can be faster because only the modified attributes need to be written to the delta undo log, not the whole row.

what is delta undo log?

replies(1): >>jabl+Cf3
◧◩
3. jabl+Cf3[view] [source] [discussion] 2023-04-28 04:21:55
>>avinas+p63
It's an undo log containing the deltas from the latest version (instead of the entire row), so that a previous version can be reconstructed in case of a rollback or if a concurrently running transaction needs the previous version.
[go to top]