暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase支持分布事务吗?为什么蚂蚁还要用分布式事务中间件?

原创 MQ4096 2020-01-10
1869

问题描述

OceanBase支持分布事务吗?为什么蚂蚁还要用分布式事务中间件?

专家解答

OceanBase提供给业务使用的是租户(也叫实例),租户支持事务,满足ACID特性。由于租户的数据可能分布在不同节点上,这个事务也就可能跨节点了就是分布式事务。OceanBase内部对分布式事务的定义是跨分区的事务,使用两阶段提交协议处理。如果事务跨分区但是没有跨节点,就优化为单机事务流程;如果跨节点了,就是两阶段提交流程。OceanBase对两阶段提交有做一些优化,所以性能比传统好很多。业务使用租户的时候不需要担心是分布式事务。

由于蚂蚁应用层使用了分库分表,OceanBase租户只是分库分表架构里的一个实例节点,当业务事务跨越了不同的OceanBase租户时(并且有可能是跨越不同的OceanBase集群),这种情形就跟传统架构下事务跨越不同的ORACLE实例情况一样了,这个事务必须靠应用层通过两阶段提交去实现。传统的两阶段提交协议有严重的性能问题,蚂蚁自己实现了分布式事务中间件(DTX),事务执行框架支持XA、TCC、FMT、SAGA等模式.

有关分布式事务的中间件解决方案原理详情可以参考《说说数据库事务和开发(下)—— 分布式事务》

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论