86

直击阿里新一代数据库技术:如何实现极致弹性能力?

 6 years ago
source link: http://mp.weixin.qq.com/s/X8fdVKoiGx1chxVjtvk1tw
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

直击阿里新一代数据库技术:如何实现极致弹性能力?

Original 张瑞 阿里开发者 2017-12-27 00:08 Posted on

阿里妹导读:张瑞,阿里巴巴研究员,阿里集团数据库技术团队负责人,经历阿里数据库技术变革历程,连续六年作为数据库总负责人参与双11备战工作。今天,我们邀请他来分享新一代数据库技术在双11中的应用。

Image

阿里数据库技术团队负责人张瑞

张瑞:双11是一场技术大练兵,是互联网界的超级工程。需要做到支撑尽可能高的零点峰值,给用户最好的体验;也要做到成本尽可能低,要求极致的弹性能力;还要做到整体系统的稳定。

数据库如何实现极致弹性能力?

数据库上云

大家都知道,数据库实现弹性能力是比较困难的,一方面是因为数据库对性能要求非常高,另一方面是需要进行大量数据的搬迁,成本很高。数据库弹性的第一个方向是数据库上云,通过云的弹性能力来解决数据库的资源问题。 

数据库上云面临以下几个难点:

1.     数据库如何快速上云,构建混合云?

2.     如何降低虚拟化带来的性能损耗?

3.     公有云环境和内部网络的互通问题。

经过几年的探索,这些难点都已得到解决。第一,数据库使用了高性能ECS,通过使用SPDK、DPDK技术和NVMe存储,可以让虚拟化损耗非常小,接近物理机;第二,我们建设了一套数据库混合云管理系统,可以同时管理云上和云下环境,在双11前快速把混合云构建起来,支撑双十一。第三,我们通过VPC网络连接阿里内部和公有云的网络,解决了混合云场景下的网络互联问题。

数据库弹性调度

使用云的资源还不够,为了实现更加极致的弹性能力,我们通过离在线混部技术,可以让数据库使用离线集群的计算资源,最大程度的降低成本。为了实现离在线混部技术,有两大基础条件:第一是容器化,通过容器实现了计算节点的资源隔离和统一调度,第二是计算存储分离,它是数据库弹性调度能力的基础。非常幸运的是,这几年技术的发展让存储计算分离成为可能,比如:25G高速网络、RDMA技术,高性能分布式存储等。

数据库存储计算分离架构如图,包括存储层、网络层和计算层,存储使用阿里自研分布式存储系统-盘古,数据库计算节点则部署在阿里自研容器(Pouch)中,通过25G网络与存储节点连接。

为了实现数据库存储和计算分离,我们在分布式存储-盘古上做了非常多的优化,比如:

  • 响应延时:单路读写响应延时0.4ms,RDMA网络响应延时小于0.2ms;

  • 二三异步:第三个数据副本异步完成,极大提升了延时的稳定性;

  • QoS流控:根据前台业务负载情况控制后台IO流量,保证写入性能;

  • 快速Failover:存储集群单机failover优化为5秒,达到业界领先水平;

  • 高可用部署:单集群四Rack部署,将数据可靠性提升到10个9。

同时,在数据库方面我们也做了大量优化,最重要的是降低计算节点和存储节点的网络传输量,以此来降低网络延迟对于数据库性能的影响。第一是redo log sync优化,将数据库吞吐提升了100%。第二是由于盘古支持原子写功能,所以我们关闭了数据库的Double Write Buffer,高压力下数据库吞吐提升20%,网络带宽节省了100%。

双11数据库混部技术

容器化和存储计算分离,使得数据库无状态化,具备调度能力。在双11高峰,通过将共享存储挂载到不同的计算集群(离线集群),实现数据库的快速弹性。

阿里新一代数据库技术

阿里最早是商业数据库,然后我们做去IOE,研发出阿里MySQL分支AliSQL和分布式中间件TDDL。2016年,我们开始研发阿里新一代数据库技术,我们把它命名为X-DB,X代表追求极限性能,挑战无限可能的含义。

阿里的业务场景对于数据库有很高的要求:

  • 数据要可扩展;

  • 持续可用、数据要强一致;

  • 数据量大、重要程度高;

  • 数据有明显的生命周期特性,冷热数据特点鲜明;

  • 交易、库存,支付等业务,操作逻辑简单,要求高性能。

因此,定义新一代数据库就要包含几个重要特点:具备数据强一致、全球部署能力;内置分布式、高性能、高可用能力;具备自动数据生命周期管理能力。

X-DB架构图

Image

X-DB架构如图,引入Paxos分布式一致性协议解决问题;可异地部署,虽然网络延时增加,但能够保持高性能(吞吐),在同城三节点部署模式下,性能与单机持平,同时具备网络抖动的高容忍性。

X-DB核心技术之一:高性能Paxos基础库X-Paxos是实现三节点能力的核心,可实现跨AZ、Region的数据强一致能力,实现5个9以上的持续可用率。

X-DB核心技术之二:Batching & Pipelining。X-DB在事务提交时,必须保证日志在数据库节点的多数派收到并提交,这是保证数据强一致基础,由于事务在提交时必须需要跨网络,这一定会导致延时增加,要保证高延时下的吞吐是非常困难的。Batching & Pipelining技术保证尽可能批量提交,数据可以乱序接收和确认,最终保证日志顺序提交。可以在高延时的情况下,保持很高的吞吐能力。

Image

X-DB核心技术之三:异步化提交,数据库线程池在提交时会等待,为了最大程度提升性能,我们采用了异步化提交技术,最大可能保证数据库线程池可以高效工作。通过这些技术保证X-DB在三节点模式下的高吞吐量。

X-DB与MySQL Group Replication对比测试

我们与Oracle官方的Group Replication作对比。在三节点同IDC部署模式下,sysbench标准化测试。Insert场景,我们可以做到MySQL官方的2.4倍,响应时间比官方低。

在异地部署模式下,sysbench标准化测试。Insert场景,X-DB(5.04万)性能优势特别明显,是MySQL GR(0.85万)的5.94倍,响应延时X-DB(58ms)是MySQL GR(150ms)的38%。

典型应用场景

Image

同城跨AZ部署替代传统主备模式,我们把原来主备模式变成三节点,解决跨AZ数据质量问题和高可用问题。跨AZ数据强一致,单AZ不可用数据零丢失、单AZ不可用秒级切换、切换自封闭,无第三方组件。相对主备模式零成本增加。

Image

跨Region部署,用更底层的数据库技术解决异地多活问题,三地六副本(主备模式)降低为三地五副本(三地五节点四数据),对于业务来说,可以享受跨Region数据强一致,单个Region不可用零数据丢失;跨Region强同步下依然保持高性能;切换策略灵活,可以优先切换同Region,也可定制跨Region切换顺序。

数据库在双11中的黑科技

X-KV在双11中的应用

X-KV是基于官方MySQL Memcached plugin的增强,今年我们做了大幅度的改进,支持更多数据类型,支持非唯一索引、组合索引,multi get功能,还支持Online Schema change。最大变化是通过TDDL支持SQL转换。对于业务方,X-KV优势是超高读取性能,数据强一致,减少应用响应时间,降低了成本,同时因为支持SQL,应用可以透明迁移,使用成本大幅降低。

TDDLfor X-KV实现了如下功能:

  • 独立的连接池:SQL和KV连接池相互独立;变更时,两套连接池保持协同一致;应用可以快速在两套接口之间切换。

  • 优化的KV通信协议:不再需要分隔符,协议实现。

  • 结果集自动类型转换:字符串自动转换为MySQL类型。

交易卖家库的性能瓶颈解决方案

随着双11交易量增长,近两年交易买家库和卖家库的同步延时一直比较大,导致商户不能及时处理双11订单;且卖家库有大量复杂的查询,性能差。我们曾经通过为大卖家设置独立队列、同步链路合并操作和卖家库限流等进行优化,但仍然没有完全解决问题。

Image

ESDB是基于ES打造的分布式文档数据库,我们在ElasticSearch的基础上,支持了SQL接口,应用可以从MySQL无缝迁移到ESDB;针对大卖家,提供动态二级散列功能,彻底解决了数据同步的性能瓶颈,而且ESDB还可以提供复杂的查询能力。

数据库监控系统演进

数据库监控系统的技术挑战具体有以下四点:

1.     海量数据:平均每秒1000万项监控指标,峰值1400万;

2.     复杂的聚合逻辑:地域、机房、单元、业务集群、数据库主备等多维度数据聚合;

3.     实时性要求高:监控盯屏需要立即看到上一秒的监控数值;

4.     计算资源:占用尽可能少的资源进行采集和计算。

整个链路经历三代架构:第一代Agent + MySQL;第二代Agent + datahub + 分布式NoSQL;第三代Agent + 实时计算引擎 + HiTSDB

Image

HiTSDB是阿里自研的时序型数据库,非常适合存储海量的监控类数据。通过实时计算引擎将秒级性能数据、全量SQL运行状况进行预先处理后,存储在HiTSDB中。通过第三代架构,实现了双11高峰不降低的秒级监控能力,这对我们了解系统运行状况、诊断问题是非常有帮助的。

CloudDBA在双11中的应用

阿里拥有业界最富有经验的DBA,海量的性能诊断数据。我们的目标是把阿里DBA的经验、大数据和机器智能技术结合起来,目标是三年后不再需要DBA做数据库诊断、优化等工作,而是让机器来完成数据库的智能化管理。我们认为自诊断、自优化、自运维是未来数据库技术发展的重要方向。

Image

CloudDBA在今年双11也做了一些探索,通过对全量SQL以及监控数据的分析,我们实现了SQL自动优化(慢SQL调优)、空间优化(无用表无用索引分析)、访问模型优化(SQL和KV)和存储空间增长预测等功能。

展望明年双11

展望明年的双11,我总结了三个关键词:Higher,Faster,Smarter

Higher意味着更高的交易峰值,背后其实是更低成本的追求,用极致的弹性能力支持更高的峰值,给用户最好的购物体验,希望有一天可以做到不限流。

Faster是我们技术人一直不变的追求,更快的应用系统、更快的数据库,更快的存储,更快的硬件等等。天下武功,唯快不破。

Smarter是机器智能在双11中的应用,不管是数据库、调度、个性化推荐甚至客服等方面,我们都希望机器智能可以得到更多的应用,产生更大的技术突破。

Image

你可能还喜欢

点击下方图片即可阅读

2017阿里技术精选

双11稳定性负责人叔同讲述:

九年双11的云化架构演进和升级

一天造出10亿个淘宝首页

阿里工程师如何实现?

关注「阿里技术」

把握前沿技术脉搏


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK