Epoxy分布式事务简介

💡 原文中文,约2100字,阅读约需5分钟。
📝

内容提要

Epoxy是一个新的协议,简化了跨异构数据存储的ACID事务。它使用多版本并发控制来适应不同的数据存储设置,并通过插入读写操作来实现快照隔离。Epoxy保证事务的原子性和持久性,并通过验证操作和持久化更改来提交事务。然而,Epoxy对辅助存储的假设和介入带来了一些开销,且必须以独占模式访问辅助存储表。

🎯

关键要点

  • Epoxy是一个新协议,简化了跨异构数据存储的ACID事务。
  • Epoxy使用多版本并发控制(MVCC)适应不同的数据存储设置。
  • Epoxy通过在主数据库上启动事务并请求快照来开始事务处理。
  • Epoxy插入对辅助存储的读写操作以实现快照隔离,确保事务对数据的固定视图。
  • 每个事务只能看到由其快照中的事务创建的记录的唯一版本。
  • Epoxy保证事务的原子性和持久性,所有操作要么提交,要么回滚。
  • Epoxy在提交前验证操作,确保没有与并发提交事务冲突。
  • 如果出现错误,Epoxy会中止并回滚所有更改。
  • Epoxy对辅助存储有假设,需支持元数据标记和记录过滤。
  • Epoxy的介入带来了一些开销,读取和写入工作负载的开销分别增加10%和70%。
  • Epoxy必须以独占模式访问辅助存储表,可能影响多个服务的使用。
  • Epoxy的源代码在GitHub上可用,支持Postgres和多个辅助存储。
➡️

继续阅读