开发者社区 > 数据库 > 正文

全局时钟的流程是怎样的?

已解决

全局时钟的流程是怎样的?

展开
收起
云上静思 2022-09-21 16:28:52 304 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    如下图所示,

    配图68.png

    详细流程如下:

    • 初始状态。此时Bob 和Joe 的账户分别有10 美元和2 美元。Write 列标识当前最新数据版本的时间戳为5。

    • 预写入并加锁。假设要实现从Bob 的账户转7 美元到Joe 的账户。该事务涉及多行数据,Percolator 会从多行中随机选择一个主记录行,并对主记录加主记录锁。本案例中Bob 账户在时间戳为7 处写入主记录锁,Data 列为3(10-7)。Joe 账户在时间戳为7 处写入加锁信息,包含对主记录锁的引用,Data 列为9(2+7)。

    • 提交主记录。在Write 列写入时间戳为8 的行,标识时间戳为7 的数据为最新数据,然后从Lock 列删除锁记录以释放锁。

    • 提交其他记录。操作逻辑与提交主记录一致。

    Percolator 中主记录提交成功,即表示事务已成功。其他记录就算提交失败,也可以进行补救。

    以上内容摘自《云原生数据库原理与实践》,这本书可以在电子工业出版社天猫店购买。

    2022-09-21 17:43:42
    赞同 展开评论 打赏
问答地址:

数据库领域前沿技术分享与交流

相关电子书

更多
Android内存泄漏自动化链路分析组件--Probe 立即下载
fibjs 模块重构从回调到协程--陈垒 立即下载
Android内存泄漏自动化链路分析组件Probe 立即下载