阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

华为云分布式数据库中间件 DDM 和开源 MyCAT 对比

  • 2019-10-22
  • 本文字数:1957 字

    阅读完需:约 6 分钟

华为云分布式数据库中间件DDM和开源MyCAT对比

华为云分布式数据库中间件(Distributed Database Middleware)是解决数据库容量、性能瓶颈和分布式扩展问题的中间件服务,提供分库分表、读写分离、弹性扩容等能力,应对海量数据的高并发访问场景,有效提升数据库读写性能。



图 1:DDM 产品介绍

DDM 前世之:MyCAT

MyCAT 的使用情况全国范围内粗略统计超过 600 家以上成功案例,涵盖政府、金融、证券、互联网、物联网、电信、游戏等众多行业。支持 1000 亿大数据,中国非常活跃的开源分布式数据库中间件。MyCAT 成功在于背后有一支强大的技术团队,其参与者都是 5 年以上资深软件工程师、架构师、DBA。


DDM 与 MyCAT 的关系:DDM 是基于 MyCAT1.6.5 版本增强而来。基于 MyCAT 增强的地方如下:


1 运维管理:DDM 提供 Console 界面,可在线对 DDM 实例、逻辑库、逻辑表、拆分规则等进行管理和维护


2 集群高可用:DDM 支持集群高可用,可实现跨 AZ,RDS 也支持跨 AZ


3 安全增强:支持 VPC(虚拟私有云)、子网、安全组,与其他租户网络隔离


4 质量保证:在质量方面补充了大量自动化测试用例(功能、性能),全方位进行质量保障措施


5 低成本:稳定的产品,完善的运维和技术支持,相比开源产品总体性价比更高;多种实例规格配置覆盖不同业务规模场景,按需购买


6 性能增强:DDM 与直连 MySQL 相比性能损耗得到了大大的降低,并且 Sysbench OLTP 场景性能得到飞跃的提升,性能数据如表 2 所示:



表 2:OLTP 性能测试


7 平滑扩容:在数据库出现存储容量瓶颈时,DDM 支持通过添加新的 RDS 实例对存储容量进行扩展,无容量上限,扩容无需应用改造,支持字符串、数字、日期等多种拆纬度,扩容进度支持可视化跟踪,并且平滑扩容业务不中断。平滑扩容原理如图 3 所示:



图 3:平滑扩容原理


8 分布式事务:DDM 当前支持单机、最大努力提交、最终一致性和强一致性四种分布式事务模型。弥补了开源 MyCAT 没有分布式事务的不足。如下针对 DDM 提供的分布式事务进行介绍

DDM 事务模型

单机

只能在单个分片上执行,如果事务涉及到多分片,DDM 将拒绝执行,返回错误。原理如图 4 所示。



图 4:单机分布式事务


适用场景


适合业务拆分比较合理,在应用层有独自完善的事务处理框架,到 DDM 的事务都是单分片事务,单分片事务由底层数据库提供强一致性的保证。单机事务模型下,如果出现跨分片的事务,会报错进行提示,避免达不到预期目的。

最大努力提交

事务在各分片上分别提交,互不干涉,提交结果尽最大可能保持一致,但有部分提交成功部分提交失败的可能,原理如图 5 所示。



图 5:最大努力提交事务模型


适用场景


这种分布式事务适合绝大部分不涉及金钱往来的业务,在性能和一致性之间比较好的一个平衡。事务中的 commit 往多个节点发送执行,有部分 commit 成功部分 commit 失败的可能性,但是这种情况出现的可能性比较低,只有在 commit 的时间窗内出现异常才有可能出现。

最终一致性

事务在各分片上的提交结果不保证始终一致,如果有分片提交失败,DDM 会对其他提交成功的分片提供补偿机制撤消之前的修改,从而确保各分片事务状态最终一致。


说明


最终一致性与强一致性这两种分布式事务的原理基本一致,区别在于:


最终一致性场景下,如有并发的查询请求,查询到的结果可能不是最终状态,如部分分片已完成提交,部分分片还在提交中,即存在中间状态。


强一致性场景下,如有并发的查询请求,查询结果是事务提交完成后的结果,即不存在中间状态。


适用场景


适合对一致性要求比较高的场景,最终一致性解决了最大努力提交模型下部分 commit 成功部分失败的问题。如果对部分读的 sql 一致性要求比较高,还可以通过 select for update 或者 lock in share mode 来避免读取到不一致状态(部分成功部分失败)。


例如:


select col1, col2,...coln from table1 where col1={拆分键} for update;
select col1, col2,...coln from table1 where col1={拆分键} lock in share mode;
复制代码


where 条件中建议带上拆分键。

强一致性

在最终一致性基础上,增强了分布式事务始终一致性保证,即任何时间点,各分片的数据都是事务开始前或者事务提交后的。


适用场景


适合对事务一致性有极端要求的场景,既要保证提交原子性、并且所有查询都必须避免脏读。一致性级别越高,付出性能代价会越大,请根据业务需要选择合适的模型。


华为云分布式数据库中间件 DDM 不但针对 MyCAT 的功能进行增强和性能进行提高,而且把 MyCAT 存在的 bug 进行修复。DDM 解决了单机关系型数据库对硬件依赖性强、扩展能力有限、数据量增大后扩容困难、数据库响应变慢等难题,通过分布式集群架构方案实现了“平滑扩容”,扩容过程中保持业务不中断。总的来说,分布式数据库中间件(DDM)具有扩容方便、性能卓越、简单易用、低成本和提供分布式事务等优势。


本文转载自公众号中间件小哥(ID:huawei_kevin)。


原文链接:


https://mp.weixin.qq.com/s/aZw0WVacZjU3xKErTWrmaA


2019-10-22 23:581107

评论

发布
暂无评论
发现更多内容

支持原生鸿蒙操作系统的小程序容器框架

Onegun

鸿蒙 鸿蒙系统 小程序容器

OneCommander Pro(双窗口文件管理工具)v3.61.2 特别版

影影绰绰一往直前

Navicat Premium 16 for Mac:一站式数据库管理解决方案

iMac小白

使用acme.sh自动续期DV证书

为自己带盐

SSL证书 acme

2023年的PHP项目部署笔记。什么?还有人用PHP?

快乐非自愿限量之名

php 开发 项目

SecureCRT for mac:提升工作效率的利器

iMac小白

SD-WAN实现分公司与总部组网高效互联

Ogcloud

网络 SD-WAN 组网

Wipe Professional(系统垃圾清理工具)特别版下载

影影绰绰一往直前

XnViewMP(图片浏览软件)绿色版

影影绰绰一往直前

软件测试/人工智能丨利用ChatGPT生成自动化测试脚本

测试人

人工智能 软件测试

Java中的泛型通配符传递类型参数

技术冰糖葫芦

API 接口

如何在Python中使用ChatGPT API处理实时数据

高端章鱼哥

Python ChatGPT

低代码开发:产品验证的破局之道

幂简集成

产品 工具 低代码 数字化 API

首届中国研究生操作系统开源创新大赛即将启动:开启创新之旅,推动开源繁荣

新消费日报

Adobe Acrobat Pro DC 2023(PDF编辑软件)直装版下载

影影绰绰一往直前

HarmonyOS NEXT分布式系统硬件资源池应用场景技术原理及接入实践

新消费日报

汉缆股份携手航天科技AIRIOT建设智慧工厂,加速数字化转型升级

AIRIOT

智慧工厂 物联网系统搭建

量化交易与人工智能:技术的交叉引发金融市场的变革

不在线第一只蜗牛

人工智能 金融 量化交易

面向对象编程,看这篇就够了

不在线第一只蜗牛

面向对象 依赖关系

Cockos REAPER(音频录制编辑软件)特别版下载

影影绰绰一往直前

Syncovery Premium(备份数据和同步工具)特别版

影影绰绰一往直前

SD-WAN解决外贸企业网络问题

Ogcloud

网络 SD-WAN vpn MPLS 网络VPN

软件测试/人工智能丨GitHub Copilot: 改变编程体验的智能代码助手

测试人

人工智能 软件测试

华为鸿蒙系统:揭开全新操作系统的神秘面纱

EquatorCoco

鸿蒙 HarmonyOS

用友系列之YonBuilder低代码平台概论和基本使用

阿Q说代码

低代码 用友

软件测试/人工智能丨大语言模型LangChain

测试人

人工智能 软件测试

诚迈科技亮相OpenHarmony人才生态大会,共话校企协同育才

新消费日报

基于模型驱动的可视化开发平台——JNPF

高端章鱼哥

低代码 可视化开发 JNPF

钱包开发:钱包基础设施赋能下一代 Dapp

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

app开发

Geek_8da502

SD-WAN可以加速视频会议吗?

Ogcloud

网络 网络加速 视频会议 SD-WAN

华为云分布式数据库中间件DDM和开源MyCAT对比_文化 & 方法_中间件小哥_InfoQ精选文章