暂无图片
MyCAT、DRDS、TIDB、TDSQL、TBase 在实现分布式事务时的区别及其各自的优势是什么?
我来答
分享
暂无图片 匿名用户
MyCAT、DRDS、TIDB、TDSQL、TBase 在实现分布式事务时的区别及其各自的优势是什么?

说一下我的理解:
1、MyCAT、阿里DRDS本质上都是一个数据库的中间件,通过mysql原生的XA事物来实现了分布式事物。(当然这种实现方式在同步阻塞、单点故障上都存在或多或少的问题)
2、TIDB还在研究
3、TDSQL 、TBase都是通过2PC + GTM的方式实现的分布式事物。

希望有真正懂的人能帮忙科普一下。感谢!

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
薛晓刚

mycat是分库分表不是分布式数据库。
tidb是不需要分库分表的一个大的数据库。是分布式数据库。
tbase没有了合并到tdsql了。是分布式数据库。
分布式数据库和分库分表的区别是全局事务,分布式索引,分布式排序。数据库集群给你控制,不是由应用或者框架控制。

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
腾讯云数据库

TBase是基于PostgreSQL开发的企业级分布式HTAP数据库,这里介绍下TBase在分布式事务方面的一些经验:

传统基于MVCC+2PC+GTM做的分布式事务,在高并发的情况下这种基于GTM全局快照的设计会在GTM上有比较大的性能压力。一个是GTM加锁遍历生成全局快照中活动事务列表计算的开销以及锁冲突开销,另一个是高并发下活动事务列表过大导致快照大小膨胀带来的网络开销。这两点导致这种设计在高并发情况下性能受限。

Google Spanner基于原子时钟和true time api实现了一致性的分布式事务,但需要昂贵的设备支持。Google Percolator采用全局时钟提供一致性分布式事务,但

Percolator在一阶段提交时需要遍历数据将锁信息写入到数据单位,二阶段时又需要遍历数据释放锁写入提交时间戳等信息。事务提交开销变大且与数据量相关。

TBase在参考Spanner/Percolator的基础上,为避免上述性能问题,创新性的结合MVCC+2PC提出了一种轻量级的基于全局时钟(GTS)的一致性分布式协议及算法。主要思路是在两阶段提交中的prepare阶段作为全局同步点结合GTS的原子递增性保证多节点间的数据一致性和隔离性。基本消除GTM的网络开销问题,并将GTM单点压力分散到分布式多节点中。

主要从以下几个方面进行优化:
MVCC从基于全局快照事务ID+事务状态的可见性判断,优化为基于GTS+事务状态的可见性判断
在当前节点prepare到收到commit通知之前会有事务锁保证全局一致
为了避免Percolator的提交开销变大的情况,TBase在提交时只记录一次事务提交GTS到时间戳日志,避免提交开销。
后续进行可见性判断时,结合时间戳日志判断事务状态,且对时间戳日志进行缓存加速。随后在tuple的header记录中缓存事务状态及提交GTS信息,进一步加速后续扫描的可见性判断。

TBase同时对MVCC空间回收进行改造,融入到基于GTS的一致性分布式事务中。
优化后GTM只负责分配全局时间戳,且设计了一种多核可扩展的全局原子递增时间戳算法进一步提高单点GTS分配性能。
欢迎大家进一步深入交流

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
tdsql noshard模式下,tdsql的事务是用xa还是本地事务?
回答 1
本地事务
tdsql mysql版 的实例和oracle 实例 概念一样, 是内存和进程的组合,对吧?
回答 2
oracle除了adg主从外,其实也有高可用方案的但不是分布式,比如RAC(业界用得最多),分区表的方案(使用较少);TDSQL的集群是分布式数据库 
tdsql for mysql最小化配置需要啥配置
回答 3
可以看我这篇博客就好,里面有tdsql的配置https://www.modb.pro/db/1839338685288951808
TDSQL JDBC batchexecute插入数据报错,是TDSQL不支持嘛?
回答 1
JDBC开启批量发送的情况下,每次创建连接时会发送COMSETOPTION命令(控制是否开启批量发送),而这个命令目前TDSQL的Proxy不支持。
TDSQL交易型分布式数据库背景哪个大佬能简单分析下?
回答 1
一、背景随着各行各业电子信息化的不断加深,线上交易数据保持了长时间高速增长的态势,对数据存储的需求越来越大,数据库管理系统(DBMS)面临越来越大的性能、空间和稳定性压力。在此过程中,得利于计算&am
tdsql是不是套壳mysql?
回答 1
是的,TDSQL(TaobaoDistributedSQL)是一个套壳的MySQL版本。它是腾讯集团自主研发的分布式关系型数据库产品。TDSQL在底层使用了MySQL的存储引擎和协议,但在架构上进行了
客户如果让我们做迁移到tdsql,对于客户现在的业务系统代码,改动工作量有哪些?改动的工作量大吗? 是否要重写业务代码
回答 1
这个取决于客户用的什么数据库,比方说客户使用的oracle,它里面可能遇到一些存储过程,和高级特性的话,这样改动还是蛮大的。
tdsql 探活只靠一个agent进行吗?
回答 1
每个实例里面多个主从节点,每个主从节点都有一个agent探活
tdsql中scheduler是单点的吗?down了会怎么办?
回答 2
主从,靠zk进行选举
TDSQL PG版有大佬普及下?欧洲航天局应用了?
回答 1
腾讯官方都没这么说吧?
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~