讲义上的定义是
"当交易T中所有存取DB的操作皆已成功执行,
且可能影响数据库的动作皆已记录于系统日志时
此交易即进入委任点"
我想问的是以下的观念有错吗?
(一)
系统日志有分
1. 还在主内存的系统日志
2. 已经写到磁盘的系统日志
(二)
当含有<commit, T>内容的系统日志写回磁盘,代表数据库已经异动
意即还在主内存,含有<commit, T>内容的系统日志,
并未真的异动到数据库
已经到达commit point的资料,因为非毁灭性故障而不确定
有没有真的异动到DB时,则要做失败复原的REDO。
(三)
系统日志要写回磁盘需要
1. 分配给系统日志的主内存区块(Block)满了
2. 到达检查点了
而系统日志强迫写入是因为情况1. 不是情况2.
如果系统日志强迫写入时,主内存的系统日志未到达commit
则被称为"交易委任前的系统日志强制写入"
(四)
只有当含有<commit,T>内容的系统日志写回磁盘,
才表示交易T已经到达Commit point
祝大家金榜题名