你会在预写日志中登录什么?

时间:2011-03-06 08:00:04

标签: database logging mvcc

实现多版本时间戳排序以实现并发控制的DBMS通常包含在其预写日志中?图像之前和之后,还是其中之一?时间戳?还有什么?

2 个答案:

答案 0 :(得分:3)

Documentation of Postgres WAL。 Postgres使用MVTO类型的MVCC。 InnoDB使用MVRC。

以下是Postgres log structurepg_control structure,这对恢复非常重要。时间戳不被用作不可靠,而是使用单调递增的整数计数器(事务id)。

因此所有与回滚相关的数据都存储在主数据本身中,而不是存储在WAL中。

WAL的主要目的是恢复由于电源故障,操作系统问题或某些硬件故障导致的数据(显然除了严重的磁盘故障)。所以WAL应该完全独立于此。

Innodb日志结构位于innodb / include / log0log.h中。

答案 1 :(得分:0)

谢谢你。 我发现这篇文章是迄今为止最好的文章之一: http://answers.oreilly.com/topic/2035-whats-new-in-sqlite-37/