zoukankan      html  css  js  c++  java
  • 为余势负天工背,云原生内存数据库Tair助力用户体验优化

    简介:作为双11大促承载流量洪峰的利器,Tair支撑了电商交易核心体验场景。不仅在数十亿QPS的峰值下保持着亚毫秒级别的顺滑延迟,同时在电商交易核心体验场景上也做出了技术创新。

    image.png

    作者 | 漠冰
    来源 | 阿里技术公众号

    作为双11大促承载流量洪峰的利器,Tair支撑了电商交易核心体验场景。不仅在数十亿QPS的峰值下保持着亚毫秒级别的顺滑延迟,同时在电商交易核心体验场景上也做出了技术创新。

    一 前言

    2021年双十一,是天猫的第十三次双十一,也是 Tair 的第十三次双十一。每个参与备战的 Tair 同学各有不同,有的同学是第一次,感受到了技术大团建的独特氛围;有的同学稍多点,集齐了七件战袍来召唤神龙。今年是我经历过的最紧张的一次:备战过程跌宕起伏,今年上线的新产品压测过程不太顺利;同时也是经历过的最暖的一次:在业务伙伴们鼎力支持下,团队兄弟们并肩作战,最终做到了“顺滑如丝安稳如磐”。

    二 背景

    Tair 从2009年4月诞生开始,经历了多次迭代,为丰富的业务场景支持了不同的引擎。其中 MDB / LDB 是发展时间最长的子产品,也依然是今天双十一的绝对主力,顺滑地承担了双十一流量洪峰,压测阶段也表现良好。这背后是成熟的内核能力对场景的全面覆盖,以及不断迭代的产品能力对维护效率的提升。当然,拥有 10K+ 实例的数据库产品是离不开系统 Owner 们精进的专业能力、对产品运行的关注、对需求的快速响应。

    image.png

    除了产品自身的稳定,Tair MDB / LDB 还是 Tair产品线其它所有产品发展的基石,比如Tair MDB With PMem,作为Tair 在持久内存上的第一个里程碑,后面迭代出了2020年云栖大会发布的 Tair 持久内存型;在今年双十一中,基于持久内存架构的 TairSQL,扩宽了内存数据库Tair支持的计算场景。Tair 持久内存型在今年双十一的不同场景中发挥了重要作用,下面的章节详细介绍。

    image.png

    三 Tair 持久内存型

    Tair 持久内存型是在阿里云官网公开售卖的提供大容量、兼容 Redis 的内存数据库产品,同时也为阿里巴巴集团内核心应用提供服务。单实例成本对比 Redis 社区版最高可降低30%,且数据持久化不依赖传统磁盘,保证每个操作持久化的同时提供近乎 Redis 社区版的吞吐和延时,极大提升业务数据可靠性。

    Tair 持久内存型所用的存储介质英特尔® 傲腾™ 持久内存(Optane PMem)是兼具出色的内存与存储性能的解决方案,将高性价比的大容量内存与对数据持久性的支持巧妙地结合在一起,可以将更多数据保存在更靠近CPU的地方,加速大内存计算,加快数据库重启时间并减少I/O, 降低大内存节点的功耗,并在断电时保护数据。

    英特尔®傲腾™持久内存弥补了传统SSD和DRAM之间的空白,以创新的技术提供独特的操作模式,满足针对各种工作负载的需求,特别是从云到数据库,再到内存分析,虚拟化基础设施等数据密集型和计算密集型工作负载,助力从更大的数据集中获取更深入的洞察。

    2020年云栖大会发布之后,通过服务越来越多云上和集团内的用户场景,Tair 持久内存型收集的用户反馈对支持的场景范围、访问性能、性价比等方面都提出了更高的要求。基于这些需求,Tair 持久内存型攻关了核心优化技术,让数据在 DRAM 、持久内存之间动态自适应移动,确保用户索引占用空间、数据区占用空间维持在固定比例范围内,满足了不同用户场景下的数据存储需求。

    同时,Tair 持久内存型与 Aliyun Linux 操作系统内核技术深度结合,兼容了主备复制、实时备份等场景对于数据快照的需求,并大幅度降低了超大内存占用空间下实时快照的延时影响。除了覆盖更多支持场景和进行高频场景的性能优化,在提供更高性价比方面,Tair 持久内存型精简了自主研发的持久内存存储结构的元数据占用空间,并针对 List、Hash 等用户高频使用的数据结构进行精细化的透明压缩,在维持数据持久化性能稳定下,实现1-2倍的数据压缩率,大幅降低了数据持久化版本的硬件成本。

    Tair 持久内存型除了在 Redis 通用场景上深耕细作持续优化,也拓展对于成本,数据一致性,低延时和容量的综合要求很高的诸如了在广告领域和特征存储场景上也大放异彩。同时2021年双十一中,在两个不同的用户场景做出了创新,帮助应用在系统稳定性、性价比、体验等方面得到了显著提升。首先介绍在风控场景中起到了重要作用的 TairCPC数据模型。

    1 TairCPC

    在2020年双十一中首次登场的 TairCPC,今年被吸纳进入Tair持久内存型产品,在双十一的风控场景起到了重要作用。

    TairCPC 提供的聚合算子 Sketches 化能力,以 Module 的形式下沉到存储引擎内部,可以利用很小的空间对采样数据做高性能的计算,用户增量写入后直接返回实时计算结果。使用 TairCPC 的风控业务,作为集团交易链路核心模块,直接影响线上整个交易的安全性,该产品最核心的实时计算链路进行实时风控的场景使用了 TairCPC。

    今年双十一这个场景在 Tair 持久内存型的助力下,节省了约1/3的存储空间,加上持久内存的成本优势,让用户成本大大降低。针对 TairCPC,Tair 持久内存型进行了大量的性能优化,使得众多场景下性能与内存相当,在慢查的性能上提升了一个数量级,有效的提升了系统稳定性。在几乎不影响性能的情况下,实现了数据的完全持久化(RPO=0)。

    2 TairSQL

    2021双十一 Tair 在核心检验场景做出的技术创新,来源于一款内部代号为 TairSQL 的子系统。双11高峰期,用户下单自动领券,以及交易成功后资产的核销都会为数据库系统带来相应的写入流量,毫秒级别的写入延时必须维持在较低水平才能保证用户在商品搜索、详情展示等导购场景感受到到手价格的一致性变化。

    价格一致性场景对于数据库产品的技术挑战简单来讲就是:读写负载高,延时要求苛刻。为了应对这个场景的技术挑战,下面的章节简单介绍下 TairSQL 使用的内核技术。

    image.png

    TairSQL内核技术

    针对双十一的业务特征,TairSQL 做了持久内存数据存储改造、客户端连接开销降低、集群初始化加速、内存使用优化等和性价比、稳定性相关的工作,但是服务于高吞吐低延迟的场景,主要得益于持久内存存储、高效事务处理模型、轻量级用户接口访问等几个核心特性:

    • 持久内存数据存储,使用持久内存作为数据最终存储介质,降低了访问链路上的 IO 延迟,无需再进行传统数据库产品耗时的缓存、磁盘上的数据频繁淘汰交换,而且针对索引数据、用户区数据的访问频率进行了合理的数据分布,让高频的索引查询更新在 DRAM 中完成。
    • 事务处理模型,水平扩展的集群中,每个节点服务数十个分区,每个分区使用单独线程响应的事务处理模型避免了锁竞争的开销,提供了更为平滑的 P99 访问延时。
    • 轻量级用户接口,轻量级的用户接口访问技术降低了用户每次请求的SQL解析编译开销,结合事务处理模型让用户的读写请求都能够在数百us内处理完成并返回。

    合格的内核技术只是满足了产品的 physiological needs,产品的 safety needs 需要提供相应的稳定性技术来满足。

    TairSQL稳定性技术

    稳定性技术涉及到产品的方方面面,不仅包括开发中针对稳定性的特性,还包括能够反映系统运行状态的周边组件。下面章节主要介绍监控、客户端、服务端流控三部分稳定性技术。

    监控。众所周知,监控就是系统的眼睛,没有监控,也不太容易看到产品运行的细节问题。TairSQL 目前主要有两套监控,一套是用来监控集群可用性相关的指标,另外一套是 Grafana+Prometheus+TairSQL Exporter 的链路来提供秒级的 RT、QPS 数据展示。监控的完善程度直接决定是否能够发现系统上的一些细节性问题,比如 TairSQL 的秒级监控可以明确展示每个数据节点的 QPS,在热点访问没有触发流控就能被发现,从最终数据访问源数据库的视角热点无处遁形。

    客户端。TairSQL 使用富客户端的方式,请求可以直接路由到需要访问到的节点上。客户端的资源消耗控制、和服务端的交互开销、建连断连在 10K+ 应用节点时对服务端的冲击、服务端拓扑变化时对客户端的及时反馈,这些都是客户端 SDK 上所做的实现考量和优化点。同时客户端和集团内生态 VipServer、鹰眼等产品进行了适配,屏蔽后端节点变化对应用的影响,支持影子表链路的访问和全链路访问的定位。

    服务端流控。流控/背压是一个成熟的服务端产品必备的功能,TairSQL 目前线上的服务端流控统计部分根据工作队列占用的内存大小和长度两个纬度进行限制,根据极限压测时的状态作为默认值的参考,流控的触发阶段是相对宽松的,只有异常情况才会触发。恢复阶段是较为严格的,只有以较高的确信值认定节点已经恢复到正常情况之后,才会解除流控状态。

    四 兄弟系统

    image.png

    云原生内存数据库 Tair 所做的创新离不开阿里云完善的基础设施的支持:
    • 数据库管控平台 DBaaS,快速实现阿里云数据库提供的安全审计、高可用、弹性伸缩、智能诊断等通用能力,以及 Tair 提供的数据闪回、全球分布等企业级能力。针对Tair持久内存型,DBaaS 结合阿里云容器服务 ACK,支持了持久内存资源和计算资源的亲和性调度以降低持久内存访问延迟,提供持久内存的 QoS 策略支持,保障服务的安全可控和产品的一致性体验。
    • 神龙裸金属服务器,提供的持久内存系列产品,为云原生内存数据库Tair提供了弹性服务的基础,针对突发流量进行针对性优化的网络技术让Tair应对高吞吐场景游刃有余,对内存等硬件风险的智能预测让 Tair 可以提前预见大促高峰期的风险级别进行规避。
    • Aliyun Linux,不仅对持久内存硬件进行了适配,还针对Tair独有的持久内存数据快照支持、实时快照延时降低等业务场景提供了针对性的优化。

    五 总结

    Tair 持久内存版在2021天猫全球购物节中的表现是云原生内存数据库 Tair在产品演进跟线上的重要里程碑。Tair 将持续以内存/持久内存 为核心存储,重点建设云原生、混合存储介质上的数据智能分布、在线存储和实时计算处理一体化等核心能力,加强云原生内存数据库的产品能力,在同一套系统中提供多种工作负载,帮助客户的众多场景真正在线化。

    原文链接
    本文为阿里云原创内容,未经允许不得转载。 

  • 相关阅读:
    settTimeout vs setInterval
    JS继承
    JS创建对象
    原型链
    开始学习python的感受
    Problem 29
    Python 查看关键字
    Problem 21
    Problem 34
    Problem 42
  • 原文地址:https://www.cnblogs.com/yunqishequ/p/15697589.html
Copyright © 2011-2022 走看看