gpt4 book ai didi

database - 为什么数据库可以在不考虑不一致性的情况下使用逻辑日志进行undo操作

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:35 26 4
gpt4 key购买 nike

对于单个数据库操作,可能会影响多个页面。例如,插入操作可能会导致页面拆分。因此,出于不一致的考虑(一个操作影响两个页面,系统崩溃时只有一个页面被刷新为数据),数据库不会使用逻辑日志进行重做操作。他们总是使用生理日志或物理日志进行重做操作。但是在ARIES算法或者一些数据库(如.mysql)中,他们使用逻辑日志来undo,这种操作可能会影响多个页面。为什么他们可以做到这一点?当只有一些被undo操作影响的页面刷入磁盘,系统再次崩溃时,他们如何保证回滚的正确性?

最佳答案

Aries 也会记录恢复操作,因此恢复期间的崩溃问题(您的最后一个问题)与撤消的逻辑日志记录问题是正交的。一个操作可能影响多个页面这一事实本身并不会导致一致性问题。

我认为理论上您也可以将逻辑日志用于重做(在 Aries 的原始论文中“可以逻辑地执行重做和撤消操作”),但是物理的最大优点是它是幂等的。 UNDO 协议(protocol)确保不会多次执行操作。

逻辑日志有几个优点(与物理日志相比):

  • 节省空间
  • “能够执行逻辑撤消允许支持更高级别的并发”

关于database - 为什么数据库可以在不考虑不一致性的情况下使用逻辑日志进行undo操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14027308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com