改写数据库历史的中国人

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 本文讲的是改写数据库历史的中国人,是的,互联网正在改变所有行业,同样包括监管最为严格、对数据库要求也最为严格的金融行业。如今,当9月21日阿里云全新一代云数据库产品POLARDB在公开的跑分测试上,读性能超过100万QPS、写性能超过13万TPS,全面超越AWS Aurora站立在世界之巅的时候,在高性能通用数据库这块高地上,第一次有了中国面孔。

本文讲的是改写数据库历史的中国人

数据库好像从来都不是中国人的强项。但转机出现在4年前。

4年前,阿里巴巴宣布向天弘基金注资,成为余额宝的资金管理单位,如今天弘基金管理的资金超过15186亿,蝉联行业第一,改变了整个基金行业的市场格局。

4年前,由蚂蚁金服、腾讯、中国平安等发起成立的互联网保险公司众安保险成立,如今的估值已经超过800亿港元,再过几天就将在香港IPO募集资金超过100亿港币。

是的,互联网正在改变所有行业,同样包括监管最为严格、对数据库要求也最为严格的金融行业。如今,当9月21日阿里云全新一代云数据库产品POLARDB在公开的跑分测试上,读性能超过100万QPS、写性能超过13万TPS,全面超越AWS Aurora站立在世界之巅的时候,在高性能通用数据库这块高地上,第一次有了中国面孔。


契机

众所周知,“IOE”中最难去的是“O”,因为Oracle至今在中国商业交易型数据库市场仍然拥有超过50%的绝对多数市场份额。

而在对交易型数据库要求最严格的金融领域,特别是国有四大行的核心系统,又都是IBM DB2数据库+IBM大型机/小型机的天下。就连DB2的小弟Informix,对国内数据库厂商来说都如获至宝——笔者还记得南大通用CTO在2015年发布基于Informix的GBase 8t的时候,很负责任地说,我们一年能研究透20%就很不错了——那时候,笔者真的有些绝望,看来中国数据库技术真的落后IBM、Oracle二十年!

但是,世事难料,4年前的一天上午,工行在全国多地的柜台、ATM、网银业务出现故障,导致1个多小时的故障。也就是在那个时间点之前不久,众安保险成立、天弘基金管理余额宝,互联网至少已经攻破金融行业的两大领域——保险、证券。

互联网为传统行业带来的不仅仅是商业模式,更重要的是技术革命。

“传统金融是非常保守的,但是互联网总有一个胆大的,比如说这两天IPO的众安保险,第一天就决策把整个系统放在阿里云云数据库上。”阿里云数据库业务资深总监余锋介绍,“虽然几年前我们对金融业务的理解、对稳定性的理解还远远不够,让他吃了很多苦头,但站在今天的业务规模看来,正是因为架构上的领先,才支撑了它的迅速发展。”

如今交易金额已经突破了万亿规模、成为了全球最大货币基金的余额宝,在2013年6月上线之初还是采用传统底层技术架构,但业务在最初短短半个月就增长了14倍,每晚清算的时间迅速从一小时变成通宵达旦。这样的扩张速度,如果采用传统IT的方式扩容,今天单单IT系统的采购费用就会让天弘基金不堪重负。
正是这样的契机,给了阿里云POLARDB数据库成长的机会。


勇气

“我2010年刚来的时候,我们一票人关在小黑屋里,你读一块、我读一块,然后大家来分享一下……然后大概一两年以后,我们把核心数据库给换了……再过一两个月,我们觉得还不错嘛,就开始把我们的能力产品化。”余锋回忆。

其实阿里云的数据库研发是从自家的应用需求开始的,研习成熟商业数据库并开始自研商业交易型数据库,比南大通用早了整整5年,比浪潮早了6年。

原因很简单,因为互联网的高并发,远远超过以往任何一个传统行业的高并发——如果互联网企业像传统行业一样照搬国外成熟的商业数据库和高可靠的小机服务器和存储设备,那么高昂的与日俱增的IT成本,会让这些依靠风投度日的互联网企业很可能永远也等不到盈利的那一天。

阿里云数据库掌门余锋

“POLARDB的研发始于3年前。我们是通过在一个主库下创建更多的存储节点,让存储节点承担负载压力来解决问题的。”余锋所说的其实就是第三代分布式共享存储架构POLARSTORE,他解释说,“因为过去在传统架构体系下,创建读库需要数据复制的过程,10TB数据即便用最高速的网络跑,都需要70个小时。我们采用了共享存储架构——因为数据不需要再搬动,很多事情变得非常简单。”
但共享存储架构说起来简单,实际上背后却非常复杂。据说有个从来都是主动追着产品经理要任务的研发同学,这次负责POLARDB的售卖系统也经常被搞得抓狂,因为POLARDB的弹性售卖接入实在是太复杂了,经常一天编程测试下来,有几十个bug要解。但最终,一个个bug都被攻克下来,这需要的不仅仅是坚持,更需要勇气。

另一位研发同学负责做PFS,需要验证创建POLARDB实例的全链路功能,就必须搞定分布式文件系统,但阿里云当时在PFS上的积累并不深,大家心里都没底,于是准备了备选的NFS方案。没想到这位同学带着两三个实习生,只花了两三周时间就把硬骨头给啃下来了,按照计划完成了创建主实例和只读实例的任务。

到如今,余锋现场演示的主实例创建、数据库加压、创建只读存储节点、压力被存储节点分担的整个过程只需要3分钟时间。从传统架构70小时,到今天的3分钟,得益于共享存储的架构。而这,如今已经是经过实践证明的低成本解决方案。

”我觉得阿里云工程师团队特别不容易的一点,就是只要今天有这样一个契机,整个团队就有这样的勇气去克服任何困难。”余锋由衷地说道,“他们大多非常年轻,也非常拼命,愿意去花时间去琢磨。所以我其实蛮为这个团队自豪的。”


极致

其实,POLARDB的原理并不复杂。阿里云数据库产品总负责人张云杨介绍说,POLARDB其实就是采用了一种计算和存储分离的架构——DB运行在计算节点,计算节点组成了一个计算资源池;数据都放在存储节点上,存储节点组成了一个存储资源池。

如果CPU和内存不够了,就扩充计算资源池;如果容量或者IOPS不够了,就扩充存储资源池,两个池子都是按需扩容。而且存储节点和计算节点可以分别向两个方向优化,存储节点会选择低配的CPU和内存,提高存储密度,而计算节点可以选择小容量、低配的SSD作为操作系统和日志盘,上多路服务器增加CPU的核数。

众所周知,关系型数据库是IO密集型的应用,IO性能的提高对数据库的性能提升至关重要。在POLARDB里,为了追求更高的性能、更低的延迟,阿里云数据库团队大胆抛弃了Linux内核提供的各种机制,比如块设备、各种文件系统例如ext4、TCP/IP协议栈和socket编程接口等,而选择了另起炉灶。最终,POLARDB实现了一整套在用户态运行的IO和网络协议栈。

比如,POLARDB用户态协议栈解决了内核IO协议栈慢的问题。这种技术实现最大化的和高速设备进行性能交互,实现一颗CPU达每秒约20万次IO处理的能力,并且保持线性的扩展能力,也就意味着4颗CPU可以达到每秒80万次IO处理的能力,在性能和经济型上远高于内核。

网络也是类似的情况。过去传统的以太网,网卡发一个报文到另一台机器,中间通过一跳交换机,大概需要一百到两百微秒。POLARDB支持ROCE以太网,应用程序通过RDMA网络,直接将本机的内存写入另一台机器的内存地址,或者从另一台机器的内存读一块数据到本机,中间的通讯协议编解码、重传机制都由RDMA网卡来完成,不需要CPU参与,使性能获得极大提升,传输一个4k大小报文只需要6、7微秒的时间。

如同内核的IO协议栈跟不上高速存储设备能力,再一次的,内核的TCP/IP协议栈跟不上高速网络设备能力,被POLARDB的用户态网络协议栈代替。这让POLARDB完成了6倍性能于MySQL的壮举。

不仅如此,得益于分布式共享存储,POLARDB还实现了OLTP(在线事务处理)与OLAP(联机分析处理)一体化的数据库系统整体设计。这种HTAP(混合交易/分析处理)数据库实际上代表了企业级数据库的未来,因为它解决了企业核心应用以往难以实时计算分析的难题,不仅与如今声名鹊起的SAP HANA的功能类似,而且在OLTP性能上也不输于Oracle。同时由于分布式共享存储成本的下降,使得POLARDB在价格上得以与RDS看齐。

至此,阿里云数据库家族已完成世界上主流的关系型、键值型、文档型、搜索型、时序型、列式数据库引擎的布局, 形成HybridDB、HiTSDB、OpenSearch等全线数据库产品及工具,领先行业进入第三代可靠性方案,采用三机房强制同步机制,以基础版、高可用版、金融版三大场景实例,护航企业数据安全。

可以说,阿里云数据库改写了商业数据库的历史——基于新的3DXpoint存储介质、NVMe SSD和RDMA网卡等最新的软硬件优化技术,实现了低成本与高性能的突破。在标准场景下,性能是MySQL的6倍、单实例实现100T级存储容量、实现AWS Aurora性能1.2倍的POLARDB,已经成为世界级的云数据库引导者。


据悉,阿里云数据库产品团队将在2017云栖大会上持续发力,
举办8大数据库专场,将技术红利再次深度释放,
并宣布重磅产品升级和开源技术,回馈用户和社区。
此外,还有业内知名的数据库创始人、专家站台演讲。


点此免费试用云数据库POLARDB

来源:科技看门道
本文作者: TechGate
本文原标题:改写数据库历史的中国人

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
7月前
|
运维 安全 Nacos
nacos常见问题之暴露到公网被改写数据库如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
224 3
|
2月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
134 6
|
26天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
34 1
|
28天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
39 4
|
2月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
69 3
Mysql(4)—数据库索引
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
192 1
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
100 2
|
1月前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
137 4
|
23天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
142 0
|
2月前
|
存储 关系型数据库 MySQL
如何在MySQL中创建数据库?
【10月更文挑战第16天】如何在MySQL中创建数据库?