多版本时间戳排序机制规则如下:
假设事务Ti 发出Read(Q)或Write(Q)操作,令Qk 表示Q 满足如下条件的版本,其写时间戳是小于或等于TS(Tk)的最大时间戳。
• 如果事务Ti 执行Read(Q)操作,则返回值是Qk 的内容。
• 如果事务 Ti 执行Write(Q)操作,且若TS(Ti)<R-TS(Qk),则系统回滚事务Ti;若TS(Ti)=W-TS(Qk),则系统覆盖Qk 的内容;若TS(Ti)>R-TS(Qk),则创建Q的一个新版本。
根据规则,一个事务读取位于其前的最近版本。如果一个事务试图写入其他事务应该已经读取了的版本,则不允许该写操作成功。
以上内容摘自《云原生数据库原理与实践》,这本书可以在电子工业出版社天猫店购买。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。