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



对于单个数据库操作,它可能会影响多个页面。例如,插入操作可能会导致页面拆分。结果,由于不一致的考虑,数据库不会使用逻辑日志进行重做操作(操作会影响两个页面,当系统崩溃时,只有一个页面被冲入数据中)。他们始终使用生理日志或物理日志进行重做操作。但是在白羊座算法或某些数据库(例如MySQL)中,它们使用逻辑日志进行撤消,这可能会影响多个页面。他们为什么可以这样做?当只有受撤消操作影响的某些页面被冲入磁盘而系统再次崩溃时,它们如何保证回滚正确性?

aries也记录了恢复操作,因此恢复过程中崩溃的问题(您的最后一个问题)与撤消逻辑记录的问题正交。操作可能会影响多个页面的事实并不会固有地引起一致性问题。

我认为您也可以使用逻辑日志进行重做("在原始Aries Paper中可以从逻辑上执行重做和撤消操作),但是物理上最大的优势是它是愿意的。撤消协议确保操作不会超过一次。

逻辑日志有一些优点(与物理日志相比):

  • 保存空间
  • "能够执行逻辑启动可以支持更高级别的并发性"

相关内容

  • 没有找到相关文章

最新更新