解读|数据库中间件MyCat为何要替换成分布式事务数据库HotDB

解读|数据库中间件MyCat为何要替换成分布式事务数据库HotDB
最新回答
紫珺婳浅

2021-07-01 19:51:03

MyCAT被替换为HotDB,主要因为MyCAT在数据正确性、稳定可靠性、功能支持等方面存在缺陷,而HotDB在技术实现上更完善,能满足企业数字化转型对数据库全链路保障的需求。具体如下:

MyCAT的缺陷
  • 涉及数据正确的缺陷

    全局序列值错误:存在全局序列插入重复、插入异常、失效等问题,例如Github Issue中的#1084、#1734。

    全局表数据错误:全局表数据出现不一致情况且无法检测,如#1787所示。

    数据分页不准:出现limit无效等情况,例如#1588。

    跨库JOIN错误:内连接带数据交叉的跨库JOIN结果集不正确,垂直分片表和全局表JOIN错误,如#405、#1460。

    分布式事务问题:采用弱XA模式,XA分布式事务只支持单条SQL,例如#1631、#1629、#1415。

    路由错误:路由位置不正确,如#1751、#1661。

    聚合函数错误:结果集不正确,例如#1715。

  • 涉及稳定可靠的缺陷

    故障检测算法缺陷:心跳使用select user(),容易出错,无法做到故障切换过程对业务服务无感知,无法保证主备切换的数据强一致,如#1815,#159。

    故障切换算法缺陷:心跳切换同步无法同步,例如#1789。

  • 功能限制

    跨库JOIN限制:不支持带数据交叉的跨库JOIN,不支持左连接、右连接,不支持3表及其以上的跨库JOIN。

    分布式事务限制:不支持强一致,仅支持弱一致。

    数据备份限制:不支持数据备份,需要使用其他备份工具进行停机维护。

    在线DDL限制:不支持在线DDL操作。

HotDB的优势
  • 存储节点高可用

    精准数据源状态判断:有精确优秀的数据源状态判断算法,未出现判漏误判现象。

    检测算法优秀:利用UPDATE+检测算法,可以检测HANG住的情况并进行解除。

    故障切换无感知:故障切换过程对业务无感知,且能做到主备切换的数据强一致。

  • 计算节点集群

    集群部署支持:支持计算节点集群部署,能够支撑9个以内计算节点,计算节点之间互相通讯,有状态。

    服务持续性:计算节点只剩最后一个可用时依旧可以提供服务。

    数据一致性保障:计算节点之间通过通讯能够保障数据的一致性,不存在数据冲突问题。

  • 全局序列/透明自增长

    内置功能:内置全局序列功能,使用方式完全和MySQL一样,无任何配置、学习成本,无需任何代码改造,性能高效。

    序列准确性:全局序列不出错。

    支持ALTER操作:支持全局序列的ALTER操作。

  • 跨库JOIN

    支持多种JOIN:支持更多的跨库join场景,几乎支持所有跨库join,极大地避免应用改造,效率更高。

    数据一致性:数据正确,结果集与单库一致。

  • 全局表数据一致性校验

    强一致性模式:在强一致性模式下,不会出现部分提交,对全局表场景下数据一致性问题进行了彻底解决。

    非强一致模式补偿:非强一致模式下,通过全局表数据一致性校验与修复功能,可对全局表场景下数据一致性问题进行补偿。

  • 分布式事务与强一致性模式

    支持分布式事务:HotDB支持分布式事务,且分非强一致性模式和强一致性模式。

    强一致性保证:强一致性模式可以保证完整的事务持久性和完整的事务隔离性功能。

  • 数据库一致性备份

    一致性备份支持:HotDB支持通过特定参数的MySQLdump命令一致性备份。

    分布式备份功能:支持通过管理平台的分布式备份功能,获得一致性的备份。

  • 数据库恢复

    图形化界面恢复:可通过管理平台图形化界面完成备份恢复HotDB集群的功能。

    闪回功能:支持闪回功能。

    时间点恢复:支持恢复到任意时间点。

  • 在线DDL

    图形化界面实现:支持图形化界面实现在线DDL,提供变更进度显示,能够保障全部节点修改成功或全部回滚。

  • 其他优势功能

    主备数据一致性检测:HotDB具有创新的高效、准确、纯只读的优秀主从数据一致性校验算法功能,对业务服务不阻塞,且可通过全图形化界面方式实现。

    慢查询语句统计:管理平台集成了慢查询统计功能,自动抓取业务系统全部SQL语句,自动统计分析全部SQL的耗时,及耗时直方图和自动判断是否需要优化,且标识出来。

    路由配置/分片方案智能推荐:通过图形化界面模拟生产压力,智能推荐匹配业务实际情况的分片方案,并且自动化数据重均衡。

    字符集和校对规则支持:对常用范围的字符集做出了完整正确的支持,支持连接字符集与存储字符集不同,支持区分大小写等。

    跨库死锁检测:支持对分布式环境下的跨实例死锁进行检查并进行正确处理。

    分布式多版本控制:实现了一套自己的分布式数据库RC、RR、SR三种隔离级别的支持。

    隐式转换支持:支持各种隐式转换,包括分片字段路由时的整型字符串互转,跨库有交叉结果集的join计算时的字符串和整型之间的互相转换等。

    分片规则评分:可以知道每张表的分片规则定义是否合理,是否需要或值得调整优化。

    在线调整分片方案:支持在线提供对业务表的表类型、分片规则、分片字段、分片所属数据节点四个维度的在线变更支持。

    数据仓库业务场景支持:支持定时增量按时间维度或全量读取大批量数据,自身有算法机制保证不会出现OOM及宕机事件。

    优秀的管理功能:HotDB Management图形化管理平台提供了图形化配置、配置校验、动态加载、拓扑图、监控图、数据报表、连接信息报表、异常事件告警、在线一键迁库等功能,有效提升了HotDB的运维体验。

企业信息化对分布式事务数据库产品的要求
  • 数据正确:支持复杂SQL、分布式事务强一致、备份数据强一致、带数据交叉的跨库JOIN与单库结果一致。
  • 稳定可靠:支持高可用,故障自动切换,且对应用无影响、可用性达到99.99%、计算节点集群化。
  • 应用透明:数据分片无需应用改造、支持全局自增序列无需应用改造、读写分离功能无需应用改造。
  • 扩展能力:支持在线水平弹性扩展、在线升级。
  • 运维透明:环境标准化、支持分布式的在线DDL无需锁表。
  • 可维护可管理:可视化管理界面、精确监控能够快速发现问题和定位问题、提供慢查询分析、提供在线定时备份计划、提供最优数据分片方案。