【发布时间】:2016-12-08 05:46:57
【问题描述】:
我在网上查了一下,STEAL和FORCE的定义如下
FORCE 还是 NO-FORCE:事务的所有更新都应该在事务提交之前强制到磁盘吗?
另外,有人告诉我
一个事务在其所有日志记录都写入稳定存储之前不会被视为已提交
那么 WAL 与 FORCE 方法有何不同?我觉得在这两种情况下,都必须在提交事务时将更改刷新到磁盘......
【问题讨论】:
标签: database logging wal crash-recovery
我在网上查了一下,STEAL和FORCE的定义如下
FORCE 还是 NO-FORCE:事务的所有更新都应该在事务提交之前强制到磁盘吗?
另外,有人告诉我
一个事务在其所有日志记录都写入稳定存储之前不会被视为已提交
那么 WAL 与 FORCE 方法有何不同?我觉得在这两种情况下,都必须在提交事务时将更改刷新到磁盘......
【问题讨论】:
标签: database logging wal crash-recovery
使用 WAL,您可以连续写入日志。整个数据库中页面的更新可以异步写入日志条目。
强制方法要求缓冲池中的所有脏页与提交操作同步刷新到磁盘。这是一项成本更高的操作,并且会限制吞吐量。
基本权衡:WAL 崩溃后恢复时间更长,而强制吞吐量更低。
【讨论】: