写点什么

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

评论

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

Thoughtworks 正式成为阿里云云原生核心合作伙伴,携手共创数字新未来!

阿里巴巴云原生

阿里云 云原生 thoughtworks 合作伙伴

“极速、统一、开放”,StarRocks开启企业数据分析新局面

[架构实战营] 模块二作业

张祥

架构实战营

分析微信朋友圈的高性能复杂度

Steven

架构实战营

微信朋友圈的高性能复杂度分析

Puciu

架构实战营

架构实战 - 模块二

唐敏

架构实战营

机器人存在的问题挑战

#每个人的掌上图书馆# 藏书馆App基于Rainbond实现云原生DevOps的实践

北京好雨科技有限公司

容器 DevOps 云原生 k8s最佳实践 Kubernetes从入门到精通

模块二作业

周文

架构实战营 「架构实战营」

全项指标第一,腾讯V265与新一代VAV1自研编码器登顶MSU视频编码器大赛

科技热闻

创业邦聚焦新消费,2021 跨时代消费新发展峰会圆满落幕

创业邦

亿滋中国X阿里云,释放新零售的数字化力量

阿里云大数据AI技术

大数据 零售

架构设计第二周学习总结

周文

架构实战营 「架构实战营」

为面试加油助力,90个常见的Kubernetes面试题,值得收藏学习

奔着腾讯去

Docker Kubernetes 容器 云原生 Go 语言

万字长文聊哈希

程序厨

面试 哈希 哈希表

eSOL和RTI合作支持汽车和工业自动化市场快速开发

薛斐

自动驾驶

元宇宙的三个阶段

石云升

元宇宙 11月日更 10月月更

阿里云消息队列 RocketMQ 5.0 全新升级:消息、事件、流融合处理平台

阿里巴巴云原生

阿里云 产品 RocketMQ 云原生

模块二作业

panxiaochun

架构实战营

Python代码阅读(第49篇):限制一个数在指定范围内

Felix

Python 编程 Code Programing 阅读代码

IM扫码登录技术专题(四):你真的了解二维码吗?刨根问底、一文掌握!

JackJiang

即时通讯 IM 二维码 扫码

微信朋友圈复杂度分析

AHUI

架构实战营 「架构实战营」

微信朋友圈架构复杂度分析

Geek_nlp小咖

架构 微信朋友圈

移动App应用进入存量竞争阶段,如何全维度洞察用户体验?

博睿数据

趣谈装饰器模式,让你一辈子不会忘

Tom弹架构

Java 架构 设计模式

crm的核心是什么?CRM对企业的核心作用是什么?

低代码小观

企业 企业管理 CRM 管理系统 CRM系统

Android TTS语音播报实践

轻口味

android 音视频 TTS 11月日更

架构实战营模块二作业

spark99

架构实战营

实时语音如何过质量关?

声网

深度学习 算法 音视频

电商秒杀系统设计

张文龙

#架构实战营

《黑客之到》- 全网最详细的kali系统安装教程

学神来啦

网络安全 渗透 kali kali基础

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