区别传统的两阶段提交 (XA) 事务,基于最终一致性原理的 “柔性事务” 能够更好的满足应用的高性能与高可用要求。
在分布式数据库中,如果一个事务同时修改多个分库的数据,无法简单保证所有分库一定都能提交成功。如果在事务提交过程中出错,会出现一些分库提交成功、另一些分库失败回滚,产生数据不一致。因而无法保证事务的原子性。
而PolarDB-X 1.0柔性事务在涉及多个分库时,将根据SQL语句的含义自动生成相应的补偿操作;一旦发生 “一些分库提交成功、另一些分库提交失败” 的情况,PolarDB-X 1.0用记录的补偿操作撤消之前的修改,从而保证事务的原子性,实现数据的最终一致。