Educational Database Management System for Software School of Tsinghua University
Mulan Permissive Software License, Version 2
13
stars
17
forks
source link
fix(mvcc): fix commit xid may be accidentally reused #26
Closed
hotwords123 closed 2 months ago
问题: 在事务恢复阶段,
MTR_BEGIN
日志对应的 trx id 会在MvccTrxManager
类的create_trx(int32_t trx_id)
方法中更新current_trx_id
以避免重复使用,符合预期。但是MTR_COMMIT
日志所使用的 commit xid 没有更新,可能会被重用而导致错误的结果。解决方案: 增加
update_trx_id
方法用于确保current_trx_id
不小于给定的参数。在 recover 阶段,MvccTrx
提交时应当调用该方法更新current_trx_id
。