最流行的高性能关系型数据库是如何在云端打造的

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 2017云栖大会POLARDB专场,阿里云资深技术专家林晓斌带来最流行的高性能关系型数据库是如何在云端打造的演讲。本文主要从数据库云服务目标开始说起,又介绍了经典模式痛点,接着提出了下一代数据库需要解决的问题和方案,最后做了简要总结。

2017云栖大会POLARDB专场,阿里云资深技术专家林晓斌带来最流行的高性能关系型数据库是如何在云端打造的演讲。本文主要从数据库云服务目标开始说起,又介绍了经典模式痛点,接着提出了下一代数据库需要解决的问题和方案,最后做了简要总结。

以下是精彩内容整理:

 

数据库云服务的目标

做云数据库的目标,让DBA创造更大的价值,不仅阿里巴巴自己的DBA,还有客户的DBA,以及没有DBA的公司,担负DBA责任的开发人员,让这些人能够更加省心,这是我们做云数据库的目标。

6630a9343adeefd3a74d33b6fe6b70a32816cf82

基于这个目标有五个指标,包括可用性、可靠性、安全性、可扩展性和可诊断性。

按重要性来说,要从安全性说起。安全包含了两点,一是数据本身的安全,一是对于数据泄露的安全。在安全上我们做了很多工作,比如现在允许用户通过配置,让数据落地后是加密的,也就是说你不用担心数据被拷走的问题。我们还有这样的设置,现在阿里云的业务人员无法访问数据库,让用户在前台授权才可以做到,通过这种方式提升它的安全性。

在可靠性上常做备份恢复到任意时间点的功能。用户出现误删数据库,或者把表改错了,我们会提供恢复到任意时间点的功能。

常见扩展性其实很好理解,就是通过图表。当我们自己在内部维护,刚开始近千个实例,后来发现实例数和DBA的数目呈比例了,阿里云有10万多个实例,但没有1万多个DBA,只有四五个。中间有一段镇痛,怎么让实例数增长的情况下,运维人员不要线性的增加,可诊断性也是体现云服务是不是成熟的标志。

 

经典模式

5545c24f5ac13c2c951a09bb8a4d69f26ffab055

公有云上大量的实例都是双节点结构。从2015年开始,我们就默认改为semisync,甚至很多公司,包括一些友商默认还是用异步模式。如果把它设成最安全的模式就会比较吃亏,用户要找两个云厂商做测试。在阿里云,数据的准确性、可靠性是第一位的,所以在2015年后,我们把默认改为双节点,保证数据不丢。

都有哪些痛点呢?比如分钟级扩容,包括电商也会碰到这样的问题,很多小的电商在云上做,用户不用告诉我们的。去年“双11”的时候,我们运维团队的要求是“双11”那天要做到零干预,前几年已经做到零故障了。有一个公有云的用户,也是一个电商网站,他没有告诉我们,等到他们说准备半年的挂了,他们买了两个很小的实例,“双11”之前也没有压测,那一天压力一上来马上打爆,临时加机器已经来不及了,数据量又大,我们从2个节点扩到8个节点,花了20个小时的时间把扩容做起来,最终帮助他们把东西卖出去。分钟级扩容,后面慢慢是一个刚需。

超大容量,迁移数据第一步就是备份。一旦发起备份,看上去备份在内库备,意味着这时候是隐含的单点系统,主库不敢挂。我们的需求是备份肯定要做,但是要让备份最快的做,而且最好做的不影响其它。成本来说也是用户的痛点。

 

下一代数据库需要解决的问题

从研发的角度以及数据库本身发展角度来说,还需要解决哪些问题?比如:

  • 硬件红利,其实数据库这几年来,尤其是MySQL在过去20几年来的发展,它还是没有真正把硬件红利榨干。好像一些新的数据库,NewSQL数据库,把小量企业变成大批量企业,读也是这样。很多硬件已经不再是RDS瓶颈了,这时候数据库应该考虑反过来,尽量多的把随机写变成数据写,还有备份要吃带宽,备份是整个拷走。整个设计理念就是按照机械硬盘在做,虽然慢慢在改进,但改进量还不够多。

我们数据库怎么用好现在的硬件红利?最近推出的POLARDB,数据系统是从网络取过来的,数据从网络取过来不从本地拷反而慢,怎么做到性能翻倍呢?POLARDB底层存储已经做到网络上读取的性能,目前已经达到和本地一样快,而且还有空间,以后就会超过。它是一个网络集群,它的LBS和带宽不再受限了,信息越多越细节,对终端用户的体验就越好。有更多的信息可以参考,用户的体验就更好,我们怎么通过硬件红利体现数据库的能力更加扩大,再让用户利用数据体现到他们的产品,让终端用户提升用户体验,这是我们需要解决的问题。

  • HTAP,现在我们说的MySQL一般是做事务,甚至比较长的一段时间,MySQL做什么最好是当天利用,越简单应用,越不容易出BUG。越简单,意味着需要别的能力时,就需要拿别的系统补充。把MySQL当KV用当然可以,我现在要一个复杂的交易,需要找另外一个系统过来做,这个系统专门做交易,接下来要做数据分析,又拉一个系统过来做,结果发现一份数据要从好多地方开始大量的数据同步,以前做数据同步还可以,现在都是分钟级别了,这是一个矛盾,越来越大。数据越来越大,一个要分析的快,一个是数据量变大,拷起来快。最好能把系统放在一起,哪里写就在哪里读,这样就很好了。
  • 智能服务,阿里很多基础运维DBA越来越少了,以前DBA要搬机器,现在已经没有这个需求了,后来要经验丰富,意味着不容易在云上扩展。其实很难要求一个创业公司里有一个经验丰富的数据库专家,我们怎么让用户拥有数据库专家,如果只有一个客户,支撑起来比较容易,当我们有10万个客户时,需要考虑怎么让一个智能系统帮助我们服务。

 

解决方案

POLARDB

af847e929c4aeaf0b7f3e831a63a2a49a13fba1d

怎么解决痛点呢?POLARDB基本的想法是这样的,数据和存储分离,计算和存储分离。图上一个节点,主库、读库、远程访问数据,解决分钟级扩容。以前我们怕别人拷数据,现在不用怕了,找一个机器把进程开起来就可以了。本地磁盘大小和备份时间的限制容量,以前一个数据有三份拷贝,备份都是分片备的,不会对系统造成很大的冲击。

HybridDB

 

4dc3e2be3411d157fe08bca5158f4c3be81628f6

现在数据量的问题解决了,就是拷贝,如果只有POLARDB一个单点,分析这个问题还是没有解决,它还是偏向事务的系统。我们有HybirdDB,数据可以直接在这里读取,算完给用户。列后引擎可以认为用户独立入口,当用户来使用时只看到这个点,语句可能不一样。分析类语句有定制语法,兼容hadoop的语句。

CloudDBA

4bcf84082ac8abd1448802ce5063d8470d69c6aa

由于磁盘老化,做DBA用户和你说语句慢了,我们看看语句是不是错了,表结构对不对,需要查很久才能怀疑到硬件坏了。另外就是网络,网络有很多层,我们会花好多时间在这个事情上。链路上做了全链路监控,从客户端到服务端,每个节点都采集,先写后读,他认为这个事情是并行的,是两个语句写下去的,用户根本查不出来的。现场ID不一样,说明是从不同现场发下来的。以审计日志为基础,我们现在做的POLARDB,已经开始做公测,后面用户可以自己在入口上升系统。我们把问题暴露出来,并不是所有问题用户都需要关注,有了完整系统之后,希望把系统的能力覆盖给客户。

 

总结

我们想让所有公司DBA卸掉繁重机械的工作,以前是搬机器装实例,大家已经过了这个时代了。下一步要做什么事情?扩容、缩容,大促容灾等体系设计,这些不是体现DBA的价值的,真正体现DBA价值的能力是他们对公司业务的了解,DBA风头最盛的是Oracle时代,因为Oracle很稳定,他们做业务的架构师。希望阿里云数据库让我们自己做到Oracle那样的能力,让DBA业务人员可以摆脱低端的工作,了解公司业务,成为业务架构师,创造更大的价值。

 

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
弹性计算 关系型数据库 MySQL
个人博客的云端之旅:体验ECS与云数据库RDS MySQL Serverless
借助阿里云的云服务器ECS和RDS MySQL Serverless,搭建属于自己的云端博客。
181 40
|
前端开发 关系型数据库 MySQL
高性能服务器Nodejs操作Mysql数据库
高性能服务器Nodejs操作Mysql数据库
114 0
|
5月前
|
关系型数据库 分布式数据库 数据库
PolarDB PostgreSQL版:Oracle兼容的高性能数据库
PolarDB PostgreSQL版是一款高性能的数据库,具有与Oracle兼容的特性。它采用了分布式架构,可以轻松处理大量的数据,同时还支持多种数据类型和函数,具有高可用性和可扩展性。它还提供了丰富的管理工具和性能优化功能,为企业提供了可靠的数据存储和处理解决方案。PolarDB PostgreSQL版在数据库领域具有很高的竞争力,可以满足各种企业的需求。
|
3月前
|
SQL Linux 数据库
|
2月前
|
存储 C# 关系型数据库
“云端融合:WPF应用无缝对接Azure与AWS——从Blob存储到RDS数据库,全面解析跨平台云服务集成的最佳实践”
【8月更文挑战第31天】本文探讨了如何将Windows Presentation Foundation(WPF)应用与Microsoft Azure和Amazon Web Services(AWS)两大主流云平台无缝集成。通过具体示例代码展示了如何利用Azure Blob Storage存储非结构化数据、Azure Cosmos DB进行分布式数据库操作;同时介绍了如何借助Amazon S3实现大规模数据存储及通过Amazon RDS简化数据库管理。这不仅提升了WPF应用的可扩展性和可用性,还降低了基础设施成本。
56 0
|
5月前
|
存储 数据处理 数据库
构建高性能的数据库查询引擎
本文将介绍如何构建一个高性能的数据库查询引擎,以提升数据库查询的效率和响应速度。通过优化查询计划、索引设计和数据存储等方面,可以实现更快速和可扩展的数据库查询,为应用程序提供更好的用户体验和数据处理能力。
|
11月前
|
存储 消息中间件 NoSQL
深入了解Redis:高性能的内存数据库
深入了解Redis:高性能的内存数据库
|
4月前
|
存储 缓存 NoSQL
Redis是一种高性能的内存数据库,常用于高并发环境下的缓存解决方案
【6月更文挑战第18天】**Redis摘要:** 高性能内存数据库,擅长高并发缓存。数据存内存,访问迅速;支持字符串、列表等多元数据类型;具备持久化防止数据丢失;丰富命令集便于操作;通过节点集群实现数据分片与负载均衡,增强可用性和扩展性。理想的缓存解决方案。
57 1
|
4月前
|
存储 NoSQL 数据处理
探索MongoDB:灵活、高性能的NoSQL数据库解决方案与应用实践
探索MongoDB:灵活、高性能的NoSQL数据库解决方案与应用实践
215 1
|
3月前
|
监控 Java 数据库连接
设计高性能的Java数据库连接池的技巧
设计高性能的Java数据库连接池的技巧

热门文章

最新文章

下一篇
无影云桌面