您会在预写日志中记录什么?
为并发控制实现多版本时间戳排序的 DBMS 通常在其预写日志中包含哪些内容?之前和之后的图像,或者其中之一?时间戳?还有什么?
What do DBMSs that implement multi-version timestamp ordering for concurrency control usually include in their write-ahead logs ? before and after images, or one of them ? timestamps ? what else ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Postgres WAL 文档。 Postgres 使用 MVCC 的 MVTO 类型。 InnoDB 使用 MVRC。
这是 Postgres 日志结构 和 pg_control结构,这对于恢复很重要。不使用时间戳,因为它不可靠,而是使用单调递增的整数计数器(事务 ID)。
所以所有回滚相关的数据都存储在主数据本身中,而不是存储在WAL中。
WAL 的主要目的是在由于电源故障、操作系统问题或某些硬件故障(显然严重的磁盘故障除外)而出现问题时恢复数据。所以 WAL 应该完全独立于它。
Innodb日志结构位于 innodb/include/log0log.h 。
Documentation of Postgres WAL. Postgres uses MVTO type of MVCC. InnoDB uses MVRC.
Here is Postgres log structure and pg_control structure, which is important for the recovery. Timestamps are not used as its not reliable, rather they use monotonically increasing integer counter (transaction id).
So all the rollback related data is stored in main data itself, not in WAL.
Main purpose of WAL is to recover data incase of problems due to power failure, OS problems or some hardware failure (obviously except serious disk failures). So WAL should be pretty much independent of that.
Innodb log structure is in innodb/include/log0log.h .
谢谢你。
我发现这篇文章是迄今为止最好的文章之一:
http://answers.oreilly.com/topic/2035- sqlite-37 中的新增内容/
Thank you pst.
I found this article to be one of the best so far:
http://answers.oreilly.com/topic/2035-whats-new-in-sqlite-37/