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