为并发控制实现多版本时间戳排序的 DBMS 通常在其预写日志中包括什么?图片之前和之后,还是其中之一?时间戳?还有什么?
最佳答案
Documentation of Postgres WAL . Postgres 使用 MVCC 的 MVTO 类型。 InnoDB 使用 MVRC。
这里是 Postgres log structure和 pg_control structure ,这对恢复很重要。不使用时间戳是因为它不可靠,而是使用单调递增的整数计数器(事务 ID)。
所以所有回滚相关的数据都存储在主数据本身,而不是WAL中。
WAL 的主要目的是在因电源故障、操作系统问题或某些硬件故障(显然除了严重的磁盘故障)而出现问题时恢复数据。所以 WAL 应该完全独立于此。
Innodb 日志结构在 innodb/include/log0log.h 中。
关于database - 你会在预写日志中记录什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5209377/