当前位置: 首页 > 科技观察

为余势负天工背,云原生内存数据库Tair助力用户体验优化

时间:2023-03-16 11:09:15 科技观察

为了支持未来,云原生内存数据库Tair帮助优化用户体验。不仅在亿级QPS峰值下保持流畅的亚毫秒级延迟,还在电商交易的核心体验场景进行技术革新。1、前言2021年双十一是天猫第13个双十一,也是泰尔第13个双十一。每一位参与筹备的泰尔学生都不一样。有同学第一次感受到了技术团队建设的独特氛围;今年是我经历过的压力最大的一年:准备过程坎坷,今年新品上线的压力测试过程并不顺利;这也是我经历过的最温暖的一次:在商业伙伴的全力支持下,团队兄弟们并肩作战,最终做到了“顺如丝,稳如磐石”。2.背景Tair自2009年4月诞生以来,经历了多次迭代,支持不同的引擎,丰富的业务场景。其中MDB/LDB是开发时间最长的子产品,依然是今天双11的绝对主力,顺利承接了双11的流量高峰,在压测阶段表现不俗。这背后是成熟核心能力对场景的全面覆盖,以及不断迭代提升维护效率的产品能力。当然,一款10K+实例的数据库产品,离不开系统拥有者高超的专业能力,对产品运营的重视,对需求的快速响应。除了产品本身的稳定性,TairMDB/LDB也是Tair产品线中所有其他产品发展的基石,比如TairMDBWithPMem,就是Tair在持久内存上的第一个里程碑,后来不断迭代out发布2020云栖大会Tair持久内存型;今年双十一,基于持久内存架构的TairSQL扩展了内存数据库Tair支持的计算场景。Tair持久内存类型在今年双十一的不同场景中发挥了重要作用,后面的章节会详细介绍。3.Tair持久内存型Tair持久内存型是阿里云官网公开发售的一款大容量、兼容Redis的内存数据库产品,同时也为阿里巴巴集团内部的核心应用提供服务。单实例成本较Redis社区版最高可降低30%,数据持久化不依赖传统磁盘,保证每??项操作的持久化,同时提供接近Redis社区版的吞吐量和时延,大大提高了业务数据的可靠性。Tair持久内存使用的存储介质,英特尔?同时,更多的数据可以更靠近CPU,加速大内存计算,加快数据库重启次数并减少I/O,降低大内存节点的功耗,并在断电时保护数据。英特尔?傲腾?持久内存弥合了传统固态硬盘和DRAM之间的差距,并以创新技术提供了独特的运行模式,以满足各种工作负载的需求,尤其是从云端到数据库,再到内存分析、虚拟数据密集型和计算密集型工作负载,例如现代化的基础架构,从而能够从更大的数据集中获得更深入的见解。2020年云栖大会发布后,通过服务越来越多的云端和集团内用户场景,Tair持久内存收集到的用户反馈对支持的场景范围、访问性能、成本等提出了更高的要求表现。基于这些需求,Tair的持久内存类型攻克核心优化技术,让数据在DRAM和持久内存之间动态自适应移动,保证用户索引和数据区占用的空间保持在固定比例范围内,满足不同用户场景数据存储要求如下。同时,Tair持久内存类型与阿里云Linux操作系统内核技术深度融合,兼容主备复制、实时备份等场景对数据快照的需求,大大降低实时快照在大内存占用下的延迟影响。除了覆盖更多的支持场景,优化高频场景的性能,在提供更高的性价比方面,Tair持久内存模型简化了自研持久内存存储结构的元数据足迹,面向高频用户比如List和Hash。采用的数据结构进行精细化的透明压缩,在保持数据持久化性能稳定的同时,实现了1-2倍的数据压缩率,大大降低了数据持久化版本的硬件成本。Tair的持久化内存类型不仅在Redis通用场景中深耕细作,不断优化,还拓展到广告、特征存储等对成本、数据一致性、低延迟、容量等复杂需求的场景。它也闪耀。同时,在2021年双十一期间,针对两种不同的用户场景进行了创新,助力应用在系统稳定性、性价比、体验等方面得到显着提升。首先介绍在风控场景中发挥重要作用的TairCPC数据模型。1、2020年双十一首次亮相的TairCPC,今年并入Tair的持久内存产品,在双十一风控场景中扮演重要角色。TairCPC提供的聚合算子Sketches能力以Module的形式下沉到存储引擎中,可以利用小空间对采样数据进行高性能计算,用户增量写入后直接返回实时计算结果。使用TairCPC的风控业务作为团购环节的核心模块,直接影响到整个线上交易的安全性。本产品核心实时计算环节采用TairCPC,用于实时风控场景。今年的双十一场景,在Tair持久内存的帮助下,节省了大约1/3的存储空间。再加上持久内存的成本优势,大大降低了用户成本。针对TairCPC,Tair持久内存型进行了大量的性能优化,使得在很多场景下的性能可以媲美内存,将慢查询性能提升一个数量级,有效提升系统稳定性。在对性能几乎没有影响的情况下,实现了完整的数据持久化(RPO=0)。2、TairSQL2021双十一泰尔在核心巡检场景的技术创新来自于一个内部代号为TairSQL的子系统。双11高峰期,用户下单自动领取优惠券,交易成功后资产冲销,给数据库系统带来相应的写入流量。在搜索、明细展示等导购场景中,可以感受到手头价格的一致变化。数据库产品价格一致性场景的技术挑战很简单:读写负载高,时延要求严格。为了应对该场景的技术挑战,以下章节简要介绍TairSQL使用的内核技术。TairSQL内核技术针对的是双十一的业务特点。TairSQL改造了持久化内存数据存储、降低客户端连接开销、加速集群初始化、优化内存使用等与性价比和稳定性相关的工作,同时服务于高吞吐和低延迟。该场景主要受益于持久内存存储、高效事务处理模型、轻量级用户界面访问等几个核心特性:无需传统数据库产品耗时的缓存,磁盘上数据的频繁清除和交换,对索引数据和用户区数据的访问频率进行合理的数据分布,从而可以高频次索引查询更新在DRAM中完成。事务处理模型,在水平扩展的集群中,每个节点服务几十个分区,每个分区使用单独的线程响应事务处理模型,避免锁竞争的开销,提供更平滑的P99访问延迟。轻量级用户界面,轻量级用户界面访问技术减少了每次用户请求的SQL解析和编译开销,结合事务处理模型,用户的读写请求可以在数百us内处理并返回。合格的核心技术只满足产品的生理需求,产品的安全需求需要通过提供相应的稳定性技术来满足。TairSQLStabilityTechnology稳定性技术涉及到产品的方方面面,不仅包括开发过程中面向稳定性的特性,还包括能够反映系统运行状态的外围组件。以下章节主要介绍监控、客户端、服务端流量控制三个部分的稳定性技术。监视器。众所周知,监控是系统的眼睛。没有监控,就不容易看到产品运行的细节。TairSQL目前有两套监控,一套用于监控集群可用性相关指标,另一套是Grafana+Prometheus+TairSQLExporter的链接,提供秒级RT和QPS数据展示。监控的完备程度直接决定了能否发现系统的一些细节问题。比如TairSQL的秒级监控,可以清楚的显示每个数据节点的QPS,可以在不触发流控的情况下发现热点访问。从最终的数据访问源来看,数据库的热点无处可藏。客户。TairSQL采用富客户端方式,请求可以直接路由到需要访问的节点。客户端的资源消耗控制,与服务端的交互开销,10K+应用节点上连接建立和断开时对服务端的影响,服务端拓扑变化时及时反馈给客户端,这些都是客户端SDK上的实施注意事项和注意事项。优化点。同时对客户端和集团生态VipServer、鹰眼等产品进行适配,屏蔽后端节点变更对应用的影响,支持影表链接接入和全链路接入定位.服务器流量控制。流量控制/背压是成熟服务器产品的必备功能。TairSQL目前在线服务器流控统计是根据工作队列占用的内存大小和长度两个纬度进行限制的。作为默认值的参考,流量控制的触发阶段比较宽松,只有异常情况才会触发。恢复阶段比较严格,只有确定节点已经恢复正常,确定性值高,才会释放流控状态。4.兄弟系统云原生内存数据库Tair的创新离不开阿里云完备的基础设施支持:数据库管控平台DBaaS,快速实现安全审计、高可用、弹性伸缩、阿里云数据库提供的智能诊断。能力,以及Tair提供的数据闪回、全球分发等企业级能力。针对Tair持久内存类型,DBaaS结合阿里云容器服务ACK,支持持久内存资源和计算资源的亲和调度,降低持久内存访问时延,为持久内存提供QoS策略支持,保障服务和产品的安全可控。一致的经验。神龙裸金属服务器提供的持久内存系列产品为云原生内存数据库Tair提供了弹性服务的基础。针对突发流量优化的网络技术让Tair可以轻松应对高吞吐量场景,并且没有内存等硬件风险。智能预测让Tair提前预知大促高峰期的风险等级,规避风险。AliyunLinux不仅适配了持久内存硬件,还针对业务场景进行了针对性的优化,例如Tair独有的持久内存数据快照支持、实时快照延迟降低等。5.总结Tair持久内存版在2021天猫国际购物节的表现,是云原生内存数据库Tair产品演进上线的重要里程碑。Tair将继续以内存/持久内存为核心存储,重点打造云原生、数据在混合存储介质上的智能分布、在线存储与实时计算处理一体化等核心能力,强化产品云原生内存数据库的能力。系统中提供了多种工作负载,帮助客户让很多场景真正上线。