你错过的数据库技术干货都在这里

2020 年 4 月 03 日

你错过的数据库技术干货都在这里

MySQL 作为开源数据库一哥,在数据库领域的任何讨论里从来都不可或缺。而近来声名鹊起的 Fintech(金融科技),话题火爆程度与 MySQL 也不遑多让。当金融遇上云计算、Fintech 遇上 MySQL,又会擦出怎样的火花?


MySQL 的“前世今生”


众所周知,MySQL 作为全球最受欢迎的开源数据库之一,集可靠、易用、功能丰富、适用范围广等特点于一身。尤其对开发者友好,使其成为关系型数据库用户的首选。但由于受社区版线下技术局限性的影响,要用好 MySQL 可谓举步维艰。


尽管 MySQL 的性能一直在提升,5.7 社区版的查询速度比 5.6 快 3 倍、8.0 比 5.7 提升 30%,但是 MySQL 社区版固有的挑战,依然没得到解决。


在生产环境中,DBA(数据库管理员)一般采用主备从架构组网方式部署 MySQL。虽然 MySQL 易用性极高,但配置高可用性的数据库系统,本身就是个艰巨任务。无论在线下或在 IaaS 上部署 MySQL,用户都需花时间了解 MySQL 复制机制,比如如何配置主备实例、只读实例、浮动 IP 地址等。此外还需特别关注安全、备份策略等问题,这耗费了大量时间和精力。


早些时候,华为云上线了基于社区版的云数据库 MySQL,服务完全基于最佳实践部署,不但自动安装、还能定期备份,轻松完成一定范围内软硬件的故障恢复,具有即开即用、便捷管理、弹性扩展、持久安全等特点。华为云数据库 MySQL 的推出,确实解了 DBA 的燃眉之急。然而,这还远远不够。


难题


MySQL 社区版本身扩容受限,高并发连接时查询性能降低。此外,半同步复制无法完全保证覆盖所有事务,在 HA 监控未知的情况下退化成异步复制;高负荷情况下复制延迟加大,主实例故障时备实例需要重放日志,接管缓慢、服务长时间不可用、甚至在备实例接管时可能会导致数据丢失等,问题层出不穷。


对于事务繁忙且对故障恢复时间有超高要求的业务而言,数据库高并发场景下性能差、复制延迟突出、故障恢复时间长的问题,成了悬在头顶的达摩克利斯之剑。


正本需清源,华为云了解到这一状况后,投入大量人力物力,推出了一款基于 MySQL 引擎内核源码优化的高性能云数据库 HWSQL,在继承原有云数据库 MySQL 的所有特性之上,提供更新、更强大、更丰富的功能,打破开源 MySQL 面临的一系列困境。


1.HWSQL 支持 AZ 内 / 跨 AZ 部署主备实例,提供高可用的数据库服务;


2.支持 CPU、内存、磁盘扩容,最多可支持扩展 5 个只读实例,增加事务吞吐量;


3.支持自动备份,PITR (Point-In-Time Recovery) 任意时间点恢复,手动创建备份,轻松应对灾难恢复。


4.还支持 VPC、子网、安全组、SSL 连接、审计日志,支持 MySQL 数据库的数据迁移导入,完全兼容 MySQL 语法协议和生态工具。


HWSQL 的性能较 MySQL 5.6 社区版提升了 3 倍。相同条件下,HWSQL 不但支持更多用户连接,且不影响响应速度。并发连接数高达 4096 时,其响应速度约提升 5 倍;并发连接数高达 8192 情况下,响应速度高达原生 MySQL 5.6 的 10 倍之多。



HWSQL 与 MySQL 性能压测对比


HWSQL 的超高性能并非一蹴而就。除了内核的优化,HWSQL 还采用了更快、更可靠、无损的半同步复制协议。即使在超高负荷的情况下,也能保证故障快速恢复,避免备实例接管时数据丢失的可能性。


数据库作为大部分在线应用和服务的核心,技术和应用正逐渐被企业重视。其完整性、可用性及安全性,既是 IT 及业务人员关注的焦点,也是决定企业发展的起点。MySQL 坐拥无数粉丝,未来又将如何呢?别急,第二场演讲:《华为 Cloud Native 分布式数据库》会给你答案。


为云而生 金融级的 Cloud Native 分布式数据库


中国信息通信技术院 2018 年《金融行业云计算技术调查报告》显示:近九成金融机构已经或正计划应用云计算技术,近 1/3 已经使用云计算技术的金融机构部署了小规模以上的虚拟服务器。金融机构应用云计算技术最主要的目的,是缩短应用部署时间、节约成本和业务升级不中断。服务安全性和可持续性,则是金融机构对云计算技术最主要的要求。



数据库技术在金融机构的应用情况


(数据来源:中国信息通信技术院)


以金融行业云为代表的新时代数据库,需要整个系统的高安全性, 高可靠性、高可用性、高性能, 可扩展能力,以及运维自动化。如何满足企业这些需求呢?答案就在华为 Cloud Native 分布式数据库系统里。


我们先来了解下华为 Cloud Native 分布式数据库的设计原理。


首先是 Near Data Process,即将与数据相关性较大的业务逻辑卸载到存储层,减轻计算负担。比如对 redo 日志的处理、配置的构建等。


华为 Cloud Native 分布式数据库利用云存储提供的特有功能,比如云存储的容错能力和快速自我修复能力,提升数据库服务的可用性和数据的可靠性。而且充分利用云存储多租户共享的能力,持续降低数据库成本。


此外,华为 Cloud Native 分布式数据库与云上各种技术垂直整合,解决了线下传统数据库的问题和痛点。例如避免随机写入 SSD 以减少磨损,利用 SSD 的超高随机读取性能,同时结合云存储的自我修复能力,既提升数据库整体性能,也让其拥有更高可靠性。


计算与存储分离以后,数据库达到高性能的关键点不再是传统的数据处理,而是网络。华为 Cloud Native 分布式数据库通过数据优化,减少通讯量,同时利用先进的网络技术(如 RDMA),降低网络的时延,提升网络吞吐。


华为 Cloud Native 分布式数据库还利用 AI 和 ML 中的先进技术实现系统自治,让数据库实现自动扩容,自我调节,从而满足用户的弹性需求。


正是基于以上原理,华为不但在原生 DB 引擎方面对开源数据库和商业数据库进行安全加固、服务化,推出云数据库 MySQL、PostgreSQL、SQL Server、文档数据库等服务;而且优化 DB 引擎,基于原生开源版本的 MySQL,进行了内核源码级优化,推出性能大幅提升 3 倍以上,复制延迟大幅降低至 20 秒内的云数据库 HWSQL,并且近期还将发布自研的企业级分布式数据库。



华为云数据库服务全景图


取得这样优异的成绩,是因为华为云突破了数据库引擎内核的关键技术,包括 IO 卸载技术,缓解磁盘 IO 压力;多个事务的日志打包提交,减少网络 IO 数量;请求异步并行化,有效利用多核资源。


此外,华为云还在云上将数据库软件和底层硬件垂直整合,在网络领域使用用户态网络协议栈技术,在存储领域使用高性能虚拟化存储,高性能存储 IO,有效隔离租户数据,保障安全。


由此可见,以华为云 Cloud Native 分布式数据库为代表的新型云数据库,正是为金融级高安全、高可靠、高可用、高性能、高可扩展以及运维自动化等需求量身定做的。


值得一提的是,华为云数据库作为领先的云服务品牌,与金融行业的关系历久弥新。早在 2017 年 11 月,招商银行就与华为成立分布式数据库联合创新实验室,实践云上金融科技变革。华为是招商银行最重要的 IT 合作公司之一,之前就有很多合作,而这次基于云数据库的合作,华为云更是助力招商银行加速数字化转型,成为“金融科技银行”。



招商银行和华为公司


成立分布式数据库联合创新实验室


云时代的到来,使得无论传统行业还是互联网行业,业务越来越多样,迭代速度越来越快,使得整体数据量大幅提升。IoT 设备、手机、移动互联网的蓬勃发展,终端也不再仅是传统 PC 客户端数据的接入。AI、大数据分析模型理论上的突破,让计算手段越来越多样。各式新物理设备的出现、存储成本的持续降低,使得数据库需要面对更多挑战。


传统数据库无论在高可用性、还是成本方面,都很难应对这些挑战。比如,传统数据库主备之间,通过异步或半同步方式进行数据同步。一旦主数据库实例发生故障导致不可用,该架构就很难在短时间内将服务切换到备数据库实例上。


未来新趋势


随着业务数据量不断地增大,数据库在性能和容量方面的提升,往往只能依赖硬件的提升来解决。不但成本很高,操作复杂,而且很难做到业务不中断。因此,具备高性能、高可靠、能弹性伸缩的分布式数据库应运而生,且将成为趋势。


本文转载自华为云产品与解决方案公众号。


原文链接:https://mp.weixin.qq.com/s/CRBBdqZXXLyOZwl1J3BDFA


2020 年 4 月 03 日 13:29359

评论

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

第十周学习总结

刘卓

计算机网络怎么学?学会这几个工具有助你理解网络协议!

我是程序员小贱

B 站收藏 10W+,GitHub 标星 6K+,肝了这门计算机速成课!

JackTian

GitHub 编程 程序员 B站 计算机基础

第10周作业

小胖子

第十周学习总结

潜默闻雨

架构师训练营 W10 学习心得

telliex

SpringBoot 实战:一招实现结果的优雅响应

看山

springboot 实战

一网打尽 Java 并发模型

cxuan

Java 后端 并发

计算机网络基础(十八)---传输层-TCP的流量控制

书旅

TCP 计算机网络 协议栈 网络层 流量控制

架构师训练营 W10 作业

telliex

FastDFS不同步怎么破

心平气和

Binlog 同步 fastdfs

[高冷面试]好不容易走到HR,结果被HR盘了,14题带走

我是程序员小贱

mini-vue之proxy代理

晓枫

vue.js

微服务架构

阿飞

微服务架构

架构师训练营 第十周 总结

CR

LeetCode题解:88. 合并两个有序数组,双指针+从前往后+使用新数组Copy,JavaScript,详细注释

Lee Chen

前端进阶训练营

翻译: Effective Go (4)

申屠鹏会

golang 翻译

架构师训练营 week10

devfan

week10

不在调上

架构师训练营 第十周 作业

CR

DDD

GalaxyCreater

架构

第十周作业

刘卓

第十周学习总结

菲尼克斯

架构师训练营 week10 - 学习总结

devfan

week10 小结

Geek_196d0f

悄咪咪提高团队幸福感 & Surprise!

Kerwin

Java 开源项目

linux终端的快捷命令汇总

良知犹存

Linux

第十周命题作业

菲尼克斯

微服务架构的一些思考

Acker飏

week10作业1

centos中Anaconda的安装以及keras安装

我是程序员小贱

你错过的数据库技术干货都在这里-InfoQ