产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

云数据库 UDB 的三重境界(三)

  • 2019-11-13
  • 本文字数:2584 字

    阅读完需:约 8 分钟

云数据库UDB的三重境界(三)

构建功能网:全方位覆盖用户需求题

云数据库发展第一阶段的目标是把“取代自建数据库”这个价值点做透,创造出区别于传统方式的全新价值。在第二阶段则需紧扣用户使用数据库的痛点,有针对性地推出公有云解决方案,构成一张功能网,全方位覆盖用户需求。


我们把第二阶段用户的需求归结为三类:


  • 高可用和容灾


数据库的高可用,即数据库节点容灾机制。它通过节点冗余和主备切换,在部分节点出现异常的情况下保证数据库仍可正常提供服务。数据库的高可用是大型 IT 系统的必备机制,但不少系统在建设时,受限于自身基础设施和能力,无法实现优质可靠、高等级的数据库高可用。


而这一点恰好是公有云的优势。首先是基础设施完善。公有云厂商拥有大量的数据中心,数据中心之间通过跨可用区,乃至跨地域的光纤专线进行连通,构成一张覆盖全国乃至全球的高性能网络;第二,公有云的规模效应将带来成本优势,能够显著降低基础设施的建设成本;最后,规模效应也让技术团队被超大力度地锤炼,技术能力和运营水平不断提升。基于以上三点原因,公有云是实施数据库高可用的天然优质土壤。


因此,UCloud 基于自身基础设施来构建高可用数据库产品为用户提供易获取、低成本、高等级的数据库高可用能力,自然也是题中之意,是 UDB 团队必须做透的一个目标。


  • 容量和性能


近些年的一个明显趋势是全社会各行业的数据量在高速增长。原因之一是全社会生产和生活日益互联网化,由此造成用户使用 IT 产品的次数和频率有数量级的增长;原因之二在于企业对数据的价值越来越加以重视,普遍希望能够沉淀数据、分析数据、以及从数据中挖掘出价值。


数据库系统作为 IT 系统的发动机,必然随着大数据时代的到来遭遇新的挑战。用户使用 IT 产品频次的增加,必然在性能上对数据库系统构成挑战;而全社会数据量的大规模增长,必然在存储容量上为数据库系统带来挑战。如何应对这两大挑战,且总体保持 IT 成本可控,是令用户越来越头痛的问题。对于云数据库团队而言,也是创造全新用户价值的大好机会。


  • 运维和安全


运维和安全是云数据库研发和运营永远的课题。需要围绕用户需求构建运维闭环,从数据导入导出、数据库运行期管理/问题排查,到性能分析、数据库优化,让用户不使用任何第三方运维工具,即可将云数据库运维工作全部搞定。在安全上,除了 DBMS 自身的用户访问控制机制之外,还应该围绕审计、加密、防恶意攻击等方面为用户提供优质的产品或功能,构建数据库安全运营闭环。


下面将展开介绍 UDB 产品围绕高可用和容灾、容量和性能、运维和安全这三个方面,构建的众多功能点。这些功能点和功能点的组合构造出一张大网,全方位覆盖用户需求。

高可用和容灾


以上用一个表格概括介绍了 UDB 高可用各功能点。但不能概括的是表格背后 UDB 团队对高可用的潜心专研和精心打磨。总的来说,UDB 团队对高可用这个价值点的打磨包括以下几个方面:

MySQL 数据库内核深度优化

经过 MySQL 官方和社区多年的打磨,MySQL 软件在可靠性和性能上表现优秀,达到了工业级别的数据库管理系统要求,在各个行业都有大规模的应用。


但对于 UDB 团队来说,在线维护几万个 MySQL 实例的稳定运行,迫使我们对 MySQL 的可靠性、容灾能力和性能提出更高要求。为此,UDB 团队对 MySQL 数据库内核做了深度优化来进一步锤炼 MySQL 软件的品质。


这些优化包括:


1.改进半同步复制机制

2.解决复制的临界事务问题

3.提升主从复制的 IO 性能

4.消除复制机制中的文件锁竞争问题


限于篇幅不展开对内核优化的论述,更详细的内容请看详细介绍

全面的容灾能力


高可用 UDB 的总体架构图如上,在容灾能力的建设上需要考虑到两个层面。


a.MySQL 节点的容灾


利用成熟的代理软件 HAProxy 作为代理网关来转发 SQL 请求,主数据库节点出现异常时,由 HAProxy 将 SQL 请求切换到从节点。HAProxy 成熟的节点健康检查和切换机制能够及时有效地检查数据库节点异常,并进行切换。


b.HAProxy 节点的容灾


所谓高可用必须是系统内全部模块去单点,为此也需要考虑 HAProxy 的容灾。普通的做法是利用 KeepAlived 等节点健康监测和故障处理软件,来实现多 HAProxy 节点的部署和容灾。但在长期的工业生产环境中,人们发现 KeepAlived 存在误检测和脑裂等问题,这存在一定的稳定性隐患,不满足云平台容灾的需求。


为此,UDB 团队自研了针对 HAProxy 节点的健康检查和容灾系统,来充分保证高可用 UDB 的稳定性和容灾能力。HAProxy 健康检查和容灾系统采用多节点、跨可用区部署,节点之间通过分布式一致性算法进行选主,结合 UCloud SDN 的 VIP 漂移能力,能够在单可用区完全不可用的情况下实现 HAProxy VIP 的及时准确漂移确保 UDB 实例的高可用。

容量和性能


在上一篇文章提到去年某技术博客公布了国内三大云数据库产品的评测结果,UDB 性能超出竞品数倍。时隔一年后的一个偶然机会,UCloud 云数据库团队得到一份关于某云服务商数据库的性能测试报告,想要详细获取此份报告请点击这里 。根据这份报告,我们对比测试了 UCloud 分布式数据库 UDDB 的性能,以此来分析一年过后各云厂商在分布式数据库的性能差距。



从这个结果我们看到:以该份测试报告为基准,对比测试 UCloud 分布式数据库 UDDB,我们相对竞品,UDDB 依然保持 2-3 倍的性能优势。这也充分说明了物理机+Docker 架构的在性能上的强大优势,也体现 UDDB 中间件强劲的性能。


UDDB 测试环境如下:


运维和安全

UDB 全景图

经过一、二阶段的发展,UDB 产品已经成长为基础扎实、品类完善、功能全面的一个云数据库产品体系。结合上篇第一阶段的 UDB 产品全景图, 叠加 UDB 团队在第二阶段做的工作, 得到新阶段的全景图如下:



在第一阶段的基础上,UDB 产品围绕用户使用云数据库的痛点需求构建了三个方面的能力:

高可用能力

基于全球数据中心间的高速网络,结合数据库软件自身的数据复制机制,以及自研的容灾检测、处理能力,不同级别的数据库高可用能力得以构建。包括同机房高可用、跨机房高可用、跨地域高可用、两地三中心高可用以及跨机房跨地域从库。

容量和性能问题解决方案

提供读写分离、分布式数据库两大产品,有效解决用户在数据高速增长下遭遇的数据库性能和容量问题。同时 TokuDB 压缩存储引擎提供很好的压缩率,在不损失性能的同时为用户节省数倍成本。

运维和安全

在运维方面提供面向 DBA 的数据迁移工具 DTS,以及面向开发团队定位为开发人员身边的自动化 DBA 专家的 DBAMaster 产品。在安全上提供存储加密和数据库审计功能。


2019-11-13 18:52731

评论

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

Github最新Java面试1658核心讲,助力百人入大厂!

Java-fenn

Java 编程 程序员 java面试 Java面试题

Chrome操作指南——入门篇(十一)network

Augus

Chrome开发者工具 9月月更

疫情时代下,线上协同办公成时下热点

Baklib

远程办公 企业 协同办公 在线设计

[Spring Framework]AOP经典案例、AOP总结

十八岁讨厌编程

Java 后端开发 9月月更

企业选择局域网即时通讯软件的必要性是什么?

WorkPlus

AI走向何方?我们在GTC 2022看到了这些趋势

脑极体

开发者有话说|在内卷中不断成长

timerring

9月月更 开发者有话说

培养技能、增强信心、 获得亚马逊云科技认证

亚马逊云科技 (Amazon Web Services)

培训与认证

我也不想学之PHP系列(1)

吉师职业混子

9月月更

2022年震荡与加速中前行的新消费

易观分析

疫情 消费

《软件开发的201个原则》思考:6. 低可靠性比低效率更糟糕

非晓为骁

个人成长 软件工程能力 高质量

Chrome操作指南——入门篇(十二)color picker(颜色选择器)

Augus

Chrome开发者工具 9月月更

金九银十必备!这份java面经让你轻松拿下45kOffer

Java-fenn

Java 程序员 面试 java面试 Java面试题

优化帮助中心需要做到以下几点

Baklib

产品 帮助中心 在线设计

速刷html一周目(下)

吉师职业混子

9月月更

峰会倒计时1天!九位行业大咖邀您共启极速统一的数据分析新范式

StarRocks

[Spring Framework]AOP初识

十八岁讨厌编程

aop 后端开发 9月月更

速刷html一周目(上)

吉师职业混子

9月月更

前端必读3.0:如何在 Angular 中使用SpreadJS实现导入和导出 Excel 文件

葡萄城技术团队

牛客网趋势最热Java八股文,速度赶紧马上打包带走!

Java-fenn

Java 编程 程序员 java面试 Java面试题

Chrome操作指南——入门篇(十三)element小技巧

Augus

Chrome开发者工具 9月月更

关于 Angular 应用 tsconfig.json 中的 target 属性

汪子熙

typescript 前端开发 angular web开发 9月月更

使用 NVIDIA CloudXR 从 Google Cloud 流式传输 VR 和 AR 内容

3DCAT实时渲染

2021年中国自然语言处理软件及服务市场规模超200亿,市场保持高速增长,竞争格局远未稳定

易观分析

自然语言处理 市场

【Jvm】Jvm类加载机制

石臻臻的杂货铺

JVM 9月月更

每日算法刷题Day16-和为S的两个数字、数字排列、二进制中1的个数

timerring

算法题 9月月更

最全Java面试攻略,吃透25个技术栈Offer拿到手软

Java-fenn

Java 编程 程序员 java面试 Java面试题

WorkPlus移动办公系统:打造安全专属、统一业务与运营的企业门户

WorkPlus

Baklib|怎样编写内嵌式的帮助文档?

Baklib

产品 产品经理 企业 帮助文档 在线设计

FAQ需要有哪些功能?哪些注意事项

Baklib

产品 产品经理 客户服务 FAQ

[Javaweb]JSON

十八岁讨厌编程

json 后端开发 9月月更

云数据库UDB的三重境界(三)_服务革新_UCloud技术_InfoQ精选文章