暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Google Percolator 的大致流程

Tonyhacks 2024-03-30
194

Google Percolator 是一个构建在 BigTable 之上的分布式事务解决方案,在 Google 内部用于网页索引更新的业务。TiDB 的事务模型沿用了 Percolator 的事务模型。

Percolator 的大致流程如下:

1. Prewrite 阶段

  • 客户端向 Percolator 发起事务请求,Percolator 为事务分配一个唯一的事务 ID。
  • 事务选取其中一行作为 primary,其他的作为 secondary。
  • Percolator 对 primary 行加锁,并写入事务 ID 和开始时间戳。
  • Percolator 对 secondary 行加锁,并写入 primary 行的地址。

2. Commit 阶段

  • Percolator 向 primary 行所在的 tablet 发送 Commit 请求。
  • tablet 将事务应用到数据库中,并释放锁。
  • Percolator 异步向 secondary 行所在的 tablet 发送 Commit 请求。
  • tablet 将事务应用到数据库中,并释放锁。

3. Abort 阶段

  • 如果事务发生任何错误,Percolator 会将事务回滚。
  • Percolator 会释放所有锁,并删除所有事务数据。

Percolator 的主要特点如下:

  • 使用两阶段提交协议保证事务的原子性和一致性。
  • 使用乐观锁避免事务冲突。
  • 使用异步提交提高性能。

Percolator 的主要缺点如下:

  • 不支持强一致性,只支持最终一致性。
  • 不支持多版本并发控制 (MVCC)。

以下是 Percolator 和 TiDB 分布式事务的主要区别:

特性 Percolator TiDB
一致性 最终一致性 强一致性
隔离性 读已提交 读已提交
锁机制 乐观锁 乐观锁
事务模型 两阶段提交 两阶段提交
MVCC 不支持 支持

总体而言,Percolator 是一种简单、高效的分布式事务解决方案,适用于对一致性要求不高的场景。TiDB 是一种高可用、高性能、强一致性的分布式事务解决方案,适用于对一致性要求高的场景。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论