database - 你会在预写日志中记录什么?

标签 database logging mvcc

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

最佳答案

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

这里是 Postgres log structurepg_control structure ,这对恢复很重要。不使用时间戳是因为它不可靠,而是使用单调递增的整数计数器(事务 ID)。

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

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

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

关于database - 你会在预写日志中记录什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5209377/

相关文章:

c# - 写入日志文件类

postgresql - 使用 PostgreSQL MVCC 跨多个表的事务隔离

c# - 向 MVCcontrib 网格上的每一行添加复选框

java - 使用 JDBC 更新数据库,其中包含一些应忽略的值

ios - Swift Alamofire 事件记录器

mysql - DBMS 中的批量收集 V/S 简单更新

linux - 记录来自 SIGTERM 的消息

sql - 有效地更新非常大的 PostgreSQL 数据库表

php - 从数组中插入多行到数据库

mysql - 将联合分组在一起