倒计时3天!细说阿里云自研云内存数据库Tair的发展之路

发布于 2022-5-23 18:15
浏览
0收藏

 

1.前言

2020双十一顺利落下帷幕,Tair表现一如既往地稳定。承载双11核心链路实时在线的超大流量,吞吐量再创新高,峰值访问量每秒15亿次。全球分布式数据库产品形态,多活数据同步量高达1亿OPS/秒,为业务提供了异地多活架构的数据能力。

 

在安全风控等业务中,首次将数据模型和sketches运算下沉至Tair。应用服务节省50%机器资源,数据处理吞吐能力提升100%,读写RT下降30%,在降低业务成本的同时,大幅提升风控时效和效果。

 

Tair与双十一同在09年诞生,至今已走过十二年。在面对业务不断的变化需求中,逐渐孵化出Tair1.0、Tair2.0、Tair(Redis企业版)、TairGDB众多产品线。

倒计时3天!细说阿里云自研云内存数据库Tair的发展之路-开源基础软件社区

面对云原生的技术趋势,面对Translytical,多样化数据模型,大型的持久存储业务需求,Tair的全新目标为云原生内存数据库,云时代的内存数据库。全新的Tair,在集团多年的技术沉淀基础上,逐步从on-premise云化的数据库演进成为百分百cloud-native的数据库,并结合新型软硬件技术(AEP,RDMA等等),打造具备多种数据模型的,存储计算一体化的,面向各类实时场景的内存数据库。通过Tair(Redis企业版)、图数据库GDB(TairGDB)多款产品线,为客户提供一体化的实时数据处理和存储能力的内存数据库。

倒计时3天!细说阿里云自研云内存数据库Tair的发展之路-开源基础软件社区

2.Tair(Redis企业版)的发展之路

 

2.1 背景

 

Tair在阿里集团内部的需求和挑战,除了高吞吐,低延迟和稳定性外,对于性能、丰富的面向应用的数据结构、数据洞察、全球多活等方面有着持续的追求和演进。

 

相比于Redis社区版,Tair性能增强型采用多线程模型,性能约为同规格Redis社区版(Redis 5.0)实例的3倍。性能增强型同时提供多种增强型数据结构模块(modules),包括TairString(含CAS/CAD命令)、TairHash、TairGIS、TairBloom以及TairDoc,使业务无需再关心存储的结构和时效性,能够极大提升业务开发效率。此外,Tair数据洞察(健康巡检、缓存分析)生态功能帮助用户全方位的了解Redis实例的使用状态,出现问题时可快速排查。

 

2.2 核心能力解读

 

  • 多样化数据结构:在缓存/内存数据库层面同样提供了原生&扩展的多种模型的数据类型,贴近业务模型,来满足客户日益复杂多样化的场景需求;
  • 统一和集成的数据平台:Tair在面向集团内部和云上客户业务支撑的发展过程中,不断探索以内存存储介质(包含持久内存,如Intel AEP等)为基础,将更多计算和分析能力下沉到Tair内存数据库系统中,通过存储计算一体化来降低客户应用程序的复杂度。例如TairCPC(Compressed Probability Counting,待开放),可以利用很小的空间对采样数据做高性能的计算,适合在实时和流式计算场景下做实时的风控和安全场景,下文有章节介绍;
  • 标准的访问接口:Tair做到了100%兼容原生Redis;
  • 极致性能:Tair性能增强型读写性能达到同规格原生Redis(Redis5.0)的3倍,能够突破热点数据高频读写受到的性能限制,高QPS场景下响应时间更低,性能表现更佳;其中,连接数上限从原生Redis的单节点1万提升至单节点3万,在大并发场景下运行稳定,可以极大地缓解突发大量请求导致的连接问题,从容应对业务高峰;
      

2.2.1 多IO增强

倒计时3天!细说阿里云自研云内存数据库Tair的发展之路-开源基础软件社区

2.2.2 性能对比
云Redis社区版实例采用与原生Redis相同的单线程模型,每个数据节点仅支持8万到10万的QPS;Tair 性能增强型采用多线程模型,由IO线程、Worker线程和辅助线程共同完成数据处理,单节点性能为社区版实例的3倍左右。下表展示了不同架构下,Redis社区版和Tair性能增强型 实例的适用场景对比。

倒计时3天!细说阿里云自研云内存数据库Tair的发展之路-开源基础软件社区

2.2.3 数据结构模块集成
云Redis社区版支持String、List、Hash、Set、Sorted Set、Stream等数据类型,能够满足大部分场景下的开发需求,但在一些复杂场景中,原生数据类型无法直接满足某些业务需求,只能使用通过调整应用数据、使用Lua脚本等方式来实现。Tair 性能增强型集成多个自研的Redis模块,包括:TairString、TairHash、TairGIS、TairBloom、TairDoc、TairTS(待开放)、TairCPC(待开放),扩展了Redis的适用性,同时降低了复杂场景下业务的开发难度,让客户专注于业务创新。

 

2.2.4 直连模式建设

倒计时3天!细说阿里云自研云内存数据库Tair的发展之路-开源基础软件社区

开通直连模式后,可以使用原生Redis Cluster的方式连接集群。客户端首次连接时会通过DNS将直连地址解析为一个随机数据分片的虚拟IP(VIP)地址,之后即可通过Redis Cluster协议访问各数据分片。双十一直连模式下RT只有0.2ms,做到了网络级的延时。

 

2.3 Tair数据洞察

 

2.3.1 产品定位
Tair数据洞察帮助用户全方位的了解Redis实例的使用状态,提供使用优化建议,提供便捷可靠高效的数据服务,以帮助用户获得更好的管理和使用体验。用户可以通过Tair数据洞察,全面掌握内存中数据存储分布情况;获取实例健康诊断报告,并获得使用上的优化建议。

 

Tair数据洞察从 实例内存、用户行为、实例状态 三个方面入手,全方位的诊断用户实例健康状态。

 

2.3.2 实例内存分析
在云数据库Redis产品中,内存分析是缺失的,用户如果想分析内存,必须要下载RDB文件,自行分析,效率极其低下。基于此,我们开发了自动化的实例内存分析,兼容线上所有架构类型和数据结构Module。

 

在技术上,采用离线的方式,分析用户实例的RDB文件,在报告中展示用户内存的整体使用情况。包括总内存使用量、总Key数,内存的日增量、周增量。更加详细的,会以不同的考量维度展示Key的分布图,包括按Key数量、占用内存大小、不同数据结构等区分。列表展示在内存占用、value元素数量以及Key前缀数量下Top100的Key目录。

 

内存分析上线前后效果对比(以1亿个Key为例):

倒计时3天!细说阿里云自研云内存数据库Tair的发展之路-开源基础软件社区

云控制台内存分析使用截图:

倒计时3天!细说阿里云自研云内存数据库Tair的发展之路-开源基础软件社区

2.3.3 用户行为分析
用户行为分析主要基于redis审计日志以及用户的访问慢日志信息。从执行命令流水中,获取用户访问最多的命令、以及Key Pattern,Top Client等信息,以及慢日志、热key等。对于集群版实例,从qps、流量、连接数等维度分析用户的访问均衡度,得出是否出现访问倾斜的结论。

倒计时3天!细说阿里云自研云内存数据库Tair的发展之路-开源基础软件社区

2.3.4 实例状态分析
实例状态主要从实例的监控指标出发,考量qps、cpu、连接数、iops、流量等指标。

 

基于上面3个部分的分析,以诊断报告的形式,对实例进行综合评分,并给用户相应的建议,包括内核参数配置建议、水位预测以及变配建议、内存使用优化建议。

 

2.4 全球分布式数据库

 

2.4.1 背景
跨域多活是基于跨域复制的,跨域复制 是指位于地理位置不同的两个地域,建立Geo Redundant Distribution,使得数据能够跨地域同步、容灾。同时,跨域复制如果功能强大,在多个地理节点上提供Multi-Master的部署,就能在每个Geo Distribution上做 读/写 操作。存储引擎提供native的数据多向复制功能,从而让业务具有更强大的部署灵活性和容灾能力,就是跨域多活。简而言之,Geo-Distribution不一定是跨域多活,而跨域多活要求Geo-Distribution和Multi-Master。

 

Tair 的全球数据库形态(全球分布式数据库)脱胎于集团内部的单元化,完美实现了跨域多活。通过系统内置的数据同步,在不影响本地数据库的性能情况下实时将数据复制到其他区域的子实例。对于客户而言,这是一个整体的数据库实例,可以在每个region中获得低延迟的本地快速读取,并且在发生区域故障或者异常时提供切换和恢复能力。

倒计时3天!细说阿里云自研云内存数据库Tair的发展之路-开源基础软件社区

2.4.2 能力效果
支持阿里云任意Region 国内<->国内,海外<->海外,国内<->海外 的跨域多活,目前为防止同步关系指数级爆炸,默认限制最多开通三地六向跨域同步。

 

本次双十一,集团大量业务使用全球分布式数据库三地六向数据同步链路,完美度过双十一流量峰值。

倒计时3天!细说阿里云自研云内存数据库Tair的发展之路-开源基础软件社区

2.5 更多计算模型:TairCPC

 

2.5.1业务背景
集团某风控业务,是Tair的重量级老客户,该业务产品作为集团交易链路核心模块,直接影响线上整个交易的安全性,该产品最核心的实时计算链路使用了TairCPC。

 

业务方使用了Tair(Redis企业版)提供的数据结构TairCPC,首次将业务计算下沉至Tair,彻底解决了旧架构下的QPS放大问题,提升了业务性能,实现了更快捷的在线数据服务。另外,由于简化了架构,同时降低了业务机器资源,真正做到了降本增效。

 

2.5.2业务挑战
现有架构:数据全部存储在KV型持久化缓存中,采用了集群架构,持久化缓存仅作为存储,外部搭建了一套实时计算链路;由于传统的实时计算链路需要与存储交互多次(写入后再多次读出计算),放大了QPS,在越来越高的流量洪峰下,性能已经不足以满足业务。

 

业务成本:因为实时计算链路需要业务平台单独搭建,这部分资源随着流量的上涨而增加。此外,原先的先读取后计算的使用方式需要存储原生数据并读出,存储成本的增长越来越难以应付。

 

2.5.3解决方案
将用户业务数据实时写入到Tair(Redis企业版)的TairCPC中,不再需要维护复杂的实时计算链路,简化了架构,节约了大量业务侧资源。

 

TairCPC提供的聚合算子Sketches化能力,以module的形式下沉到存储引擎内部,实现了纳秒级计算,用户增量写入后直接返回实时计算结果,所见即所得。

 

2.5.4业务价值

  • 为用户提供了网络Ping级的极致性能体验,RT降低30%,助力用户轻松应对双十一流量洪峰;
  • 彻底解决QPS放大问题,总QPS降低约60%;
  • 存储和业务侧资源共节省约50%资源,做到了降本增效。

 

3.Tair云原生技术未来演进思考

Tair多年来扎根服务于阿里巴巴集团内,从2019年开始,Tair 版本从集团内部走向了阿里云上,服务阿里云上各行业客户,迅速积累了众多客户。这个过程中,系统逐步在从依赖阿里云IaaS的on-premise部署方式演进至整体基于阿里云的cloud-native的模式在建设话不多说,如果你的在线服务有极致的性能需求、严苛的RT稳定性需求,那么,快来使用Tair(Redis企业版)吧。

 

阿里云Tair(Redis企业版性能增强型)限时限量特惠,新购和续费年付5折,月付7折,Redis全兼容,更强大性能,更大带宽,更大连接数更丰富实用的数据结构,具备全球分布式多活、数据闪回等多个企业级能力。

 

文章转自公众号:阿里云数据库

分类
标签
已于2022-5-23 18:15:11修改
收藏
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐