DRDS 柔性事务漫谈
DRDS 是阿里云提供的一款分布式数据库产品,它的原型是在阿里内部使用了 10 年的数据库中间件 TDDL。DRDS 在 TDDL 提供的数据切分和 SQL 路由能力上,强化了分布式查询,事务和水平扩容能力。
什么是柔性事务?
在分布式数据库中,数据存储在多个节点将引入两个问题:
- 分布式事务 - 业务需要更新多个节点的数据。
- 全局二级索引 - 查询无法准确的定位数据位于哪个节点。
由于全局二级索引的同步依赖于事务,因此 分布式事务 是所有分布式数据库产品都需要解决的核心问题。这一问题的关键是 —— 数据存储在多个节点,原本在单机数据库上不难实现的 ACID 特性在分布式环境下变得困难:
- 因为网络通信的不可靠,事务的原子性需要用多次日志和网络通信来保证。
- 存储节点的增加,放大了单个存储节点在事务过程中出现故障的风险。
- 用锁实现的事务隔离性,在故