QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

华为云分布式数据库中间件 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:581351

评论

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

Hadoop与数据湖是什么关系?终于有人说明白了!

雨果

hadoop 数据湖

一箭双雕!刷完阿里P8架构师spring学习笔记+源码剖析,涨薪8K

退休的汤姆

Java 面试 阿里 Java工程师 spring、

太强了!字节大佬的《设计模式宝典》越读越有意思!

退休的汤姆

Java、 面经 社招 Java工程师 秋招

阿里资深架构师熬夜纯手写的238页微服务容器化开发实战笔记

退休的汤姆

面试 微服务 社招 Java工程师 秋招

2022年中国生鲜电商年度综合分析

易观分析

电商 生鲜

「GitLab篇」如何用Git平台账号登录建木CI

Jianmu

开源 持续集成 CI/CD 持续部署 流水线

云会议玩法升级

sofiya

1对1直播源码:运行多个任务,资源如何切换?

开源直播系统源码

软件开发 一对一直播源码 直播系统源码 语音连麦app

Node js 开发入门 —UDP 编程,小白也能轻松学会

CRMEB

内网场景 Dubbo 微服务接入观测云

观测云

IBM Semeru Windows 下的安装

HoneyMoose

字节跳动基于ClickHouse优化实践之“多表关联查询”

字节跳动数据平台

数据库 数据分析 OLAP Clickhouse 数据查询

IPQ4019 IPQ4029 ,wallys ,802.11ac Outdoor Metal Waterproof Enclosure Metal Outdoor

wallys-wifi6

零故障支持数百场重大会议成功举办,HW云会议做了这些事

科技怪咖

如何完美的进行数字化转型?

雨果

数字化转型

所有人!把膝盖准备好,这份“保姆级”的RabbitMQ笔记,你不服不行

退休的汤姆

面试 RabbitMQ 社招 Java工程师 秋招

IntelliJ IDEA 设置 IBM Semeru JDK

HoneyMoose

开源一夏 |企业内部应用接入钉钉获取部门及人员信息

六月的雨在InfoQ

开源 钉钉 API 钉钉开放平台 8月月更

MAUI + Masa Blazor 开发带自动更新功能的安卓App

MASA技术团队

.net blazor MASA MAUI Xamarin

自动化元数据管理的“七宗最”?

雨果

元数据

开源一夏 | Docker Compose从入门到实践

微枫Micromaple

开源 容器 云原生 8月月更

教育行业运维审计用什么堡垒机好?有什么作用?

行云管家

网络安全 教育 堡垒机 IT运维 运维审计

从入门到高手,数据从业者的成长一般都要经过哪些阶段?

雨果

数据工程师必备技能

科创人·望繁信创始人索强:中国版流程挖掘注定有完全不同的活法

科创人

LCD液晶屏和LED显示屏有什么区别?

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

什么样的数据架构可以彻底解决企业数据孤岛的问题?

雨果

数据孤岛

大型软件团队协作中的常见难题和避坑策略|ONES 研发管理大师课

万事ONES

NFTScan 与 Bulletime 在 NFT 底层数据方面达成战略合作

NFT Research

区块链 NFT 合作伙伴

阿里的职级是如何上升的,是工作经验还是能力?(附阿里面试题)

程序知音

Java 阿里巴巴 java面试 后端技术 八股文

【IT运维】Linux运维需要掌握哪些技能?

行云管家

Linux 运维 linux运维 IT运维

技术开发人员:一款远超Hue的SQL工具!

雨果

sql

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