2015-10-19 66 views

回答

10

假设一个事务T1想要读取一个数据对象X,但工作内存满了所有其他事务的工作。所以T1需要清除一些内存,通过在工作内存中踢一些其他页面来稳定存储。这可能是危险的,因为我们无法确定T1对稳定存储的推动力。这被称为偷窃。

强制意味着每次事务提交时,所有受影响的页面将被推送到稳定的存储。这是低效率的,因为每个页面可能会被许多事务写入,并且会降低系统的速度。

大多数崩溃恢复使用了一种窃取/非强制方法,接受将可能未提交的数据写入内存的风险,以获得不强制将所有提交效果强制写入内存的风险。