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