假设我们有 2 个事务作为 T1,T2,T2 对 T1 修改的数据进行脏读并在 T1 之前提交。现在假设 T1 失败并回滚。我的问题是 - 由于 T2 已提交,T2 所做的更改是否会从共享缓冲区转移到原始数据库(因为我已经读过事务所做的更改一旦事务提交就会永久保存到原始数据库)?如果它们被转移到原始数据库,那么 T1 将如何回滚并获取数据项的先前值(被 T2 读脏)?通过它的缓冲区或原始数据库?
问问题
31 次
假设我们有 2 个事务作为 T1,T2,T2 对 T1 修改的数据进行脏读并在 T1 之前提交。现在假设 T1 失败并回滚。我的问题是 - 由于 T2 已提交,T2 所做的更改是否会从共享缓冲区转移到原始数据库(因为我已经读过事务所做的更改一旦事务提交就会永久保存到原始数据库)?如果它们被转移到原始数据库,那么 T1 将如何回滚并获取数据项的先前值(被 T2 读脏)?通过它的缓冲区或原始数据库?