阿里云自研内存数据库Tair诞生于2009年,是一种支持高并发低延迟访问的云原生内存数据库,完全兼容Redis,已历经多年双11大促考验,提供核心在线访问加速能力,显著提升系统吞吐量。

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

2021双十一Tair在核心检验场景做出的技术创新,来源于一款内部代号为TairSQL的子产品,TairSQL通过持久内存存储、高效事务处理模型、轻量级用户接口访问等最新技术来服务相应场景,支撑新零售实时优惠计算引擎获取用户级别的优惠券、红包、积分等资产数据,确保价格一致性。助力购物车场景首次实现高并发流量下、实时显示券后到手价,让用户对商品实付价一目了然,显著提升消费者购物体验和用户效率。

双11高峰期,用户下单自动领券,以及交易成功后资产的核销都会为数据库系统带来相应的写入流量,毫秒级别的写入延时必须维持在较低水平才能保证用户在商品搜索、详情展示等导购场景感受到到手价格的一致性变化。在激增的写入给系统带来挑战的同时,TairSQL需要响应高吞吐的查询负载,而且延时要求更为苛刻。

TairSQL使用持久内存作为数据最终存储介质,降低了访问链路上的IO延迟,无需再进行传统数据库产品耗时的缓存、磁盘上的数据频繁淘汰交换,而且针对索引据、用户区数据的访问频率进行了合理的数据分布,让高频的索引查询更新DRAM中完成;

水平扩展的集群中,每个节点服务数十个分区,每个分区使用单独线程响应的事务处理模型避免了锁竞争的开销,提供了更为平滑的P99访问延时;轻量级的用户接口访问技术降低了用户每次请求的SQL解析编译开销,结合事务处理模型让用户的读写请求都能够在数百us内处理完成并返回。

TairSQL最为关键的持久内存存储技术是Tair在技术应用上持续创新的又一里程碑:基于英特尔(Intel)傲腾持久化内存硬件,Tair于2018年正式开始投入持久化内存的研究和落地,成功应用于当年双11的电商商品核心集群中,服务于KV缓存场景,大幅降低了成本,是中国首个在生产环境正式部署应用Intel 持久化内存硬件的产品。

Tair持久内存型兼容Redis,数据持久化不依赖传统磁盘,确保每个操作持久化的同时,提供近乎Redis社区版的吞吐和延时,极大提升了业务数据可靠性。基于Tair持久内存架构的TairSQL,兼容SQL写入查询,服务于高吞吐下对延时要求苛刻的业务,单集群峰值可达400w写、800w读,查询延时稳定在1.5ms以下,进一步拓宽了Tair支持的计算场景的广度。

不仅在新的计算场景应用上不断探索,Tair针对已覆盖的场景也时刻关注系统运行细节和日常用户反馈,深耕细作持续优化:

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

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

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

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

Tair所做的创新,离不开阿里云完善的基础设施的支持:云原生数据库管控平台DBaaS快速实现阿里云数据库提供的安全审计、高可用、弹性伸缩、智能诊断等通用能力,以及Tair提供的数据闪回、全球分布等企业级能力。针对Tair持久内存型,DBaaS结合阿里云容器服务 ACK,支持了持久内存资源和计算资源的亲和性调度以降低持久内存访问延迟,提供持久内存的QoS策略支持,保障服务的安全可控和产品的一致性体验;

神龙裸金属服务器提供的持久内存系列产品,为Tair提供了弹性服务的基础,针对突发流量进行针对性优化的网络技术让Tair应对高吞吐场景游刃有余,对内存等硬件风险的智能预测让Tair可以提前预见大促高峰期的风险级别进行规避;

Aliyun Linux不仅对持久内存硬件进行了适配,还针对Tair独有的持久内存数据快照支持、实时快照延时降低等业务场景提供了针对性的优化。

2021天猫双11虽已落下帷幕,但我们不会停下脚步,云原生内存数据库Tair将不断探索新的应用场景,为用户提供更优质、更全面的数据库服务。

原文链接

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

双11特刊|购物车实时显示到手价,看云原生内存数据库Tair如何提升用户体验?的更多相关文章

  1. 订单峰值激增 230%,Serverless 如何为世纪联华降本超 40%?|双11 云原生实践

    作者 | 朱鹏 导读:2020 年 双11,世纪联华基于阿里云函数计算 (FC) 弹性扩容,应用于大促会场 SSR.线上商品秒杀.优惠券定点发放.行业导购.数据中台计算等多个场景,业务峰值 QPS 较 ...

  2. 基于Filebeat+Kafka+Flink仿天猫双11实时交易额

    1. 写在前面 在大数据实时计算方向,天猫双11的实时交易额是最具权威性的,当然技术架构也是相当复杂的,不是本篇博客的简单实现,因为天猫双11的数据是多维度多系统,实时粒度更微小的.当然在技术的总体架 ...

  3. 第八章 交互技术,8.4 Weex 双11会场大规模应用的秒开实战和稳定性保障(作者:鬼道)

    8.4 Weex 双11会场大规模应用的秒开实战和稳定性保障 前言 Native 开发的诸多亮点中,流畅体验和系统调用是最多被提及的.流畅体验体现在页面滚动/动画的流畅性,背后是更好的内存管理和更接近 ...

  4. 媲美5G的Wifi网速、“备战”资产一键领……揭秘双11小二背后的保障力量

    如今,双11不光是购物狂欢节,更是对技术的一次“大考”,对于阿里巴巴企业内部运营的基础保障技术而言,亦是如此. 回溯双11历史,这背后也经历过“小米加步枪”的阶段:作战室从随处是网线,交换机放地上的“ ...

  5. 不仅仅是双11大屏—Flink应用场景介绍

    双11大屏 每年天猫双十一购物节,都会有一块巨大的实时作战大屏,展现当前的销售情况. 这种炫酷的页面背后,其实有着非常强大的技术支撑,而这种场景其实就是实时报表分析. 实时报表分析是近年来很多公司采用 ...

  6. 使用Uploadify实现上传图片生成缩略图例子,实时显示进度条

    不了解Uploadify的,先看看前一篇详细说明 http://www.cnblogs.com/XuebinDing/archive/2012/04/26/2470995.html Uploadify ...

  7. [转载] 关于“淘宝应对"双11"的技术架构分析”

    微博上一篇最新的关于“淘宝应对"双11"的技术架构分析”.数据产品的一个最大特点是数据的非实时写入.

  8. iOS之UISearchBar实时显示结果

    iOS之UISearchBar实时显示结果     UISearchBar 经常是配合UITableView 一起使用的,一般都将UITableView的tableHeaderView属性设置为UIS ...

  9. 双11电商剁手节,最全的H5互动营销案例合集

    距离双11不足一个月! 是否准备好为双十一疯狂剁手! 自从天猫2009年首创双11购物节以来双十一不仅成为了消费者的"剁手日" 更是每年企业营销的"狂欢节" 各 ...

  10. 我们知道CDN护航了双11十年,却不知道背后有那么多故事……

    情不知如何而起,竟一往情深.恰如我们.十年前,因为相信,所以看见.十年后,就在眼前,看见一切. 当2018天猫双11成交额2135亿元的大屏上,打出这么一段字的时候,参与双11护航的阿里云CDN技术掌 ...

随机推荐

  1. webserver总结

    可设置参数:连接池最大连接数,最大线程数,任务队列最大值,timeslot epoll epoll监听listen_fd(接受新客户端和断开连接), pipefd(将信号输入到管道用epoll统一管理 ...

  2. ubuntu无法安装lrzsz

    ubuntu无法安装lrzsz root@ubuntu:/opt/test# apt install lrzsz Reading package lists... Done Building depe ...

  3. Android优化总结

    目录介绍 1.OOM和崩溃优化 1.1 OOM优化 1.2 ANR优化 1.3 Crash优化 2.内存泄漏优化 2.0 动画资源未释放 2.1 错误使用单利 2.2 错误使用静态变量 2.3 han ...

  4. 记录-Symbol学习笔记

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 Symbol是JavaScript中的原始数据类型之一,它表示一个唯一的.不可变的值,通常用作对象属性的键值.由于Symbol值是唯一的, ...

  5. 《百岁人生》读书笔记 | 能活百年,为什么要死在 "35" 岁?

    <百年人生>讲述了当我们如愿能够接受到 长寿 这份礼物时,它所带给我们的挑战以及应对方法,这些发生在 "眼前" 的事,不得不引发我们重新的思考.推荐阅读 一.百岁人生的 ...

  6. fs.1.10 ON CENTOS7 docker镜像制作

    概述 freeswitch是一款简单好用的VOIP开源软交换平台. centos7 docker上编译安装fs1.10版本的流程记录. 环境 docker engine:Version 24.0.6 ...

  7. Spring Cloud项目搭建版本选择

    1.查看spring cloud的版本 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4 ...

  8. KingbaseES V8R6 sys_squeeze 使用

    sys_squeeze介绍 sys_squeeze是KingbaseES的一个扩展插件,该组件将提供人工调用命令实现对表dead tuple的清理工作.该组件在清理表空间的过程中,不会全程加排他锁,能 ...

  9. 优先队列(PriorityQueue)

    > 此代码是在最大堆的基础上二次封装,请先阅读底层代码MaxHeap 优先队列 普通队列:先进先出:后进后出 优先队列:出队顺序和⼊入队顺序无关:和优先级相关: 为什么使用堆 代码清单 Queu ...

  10. #线段树,矩阵乘法#洛谷 7453 [THUSCH2017] 大魔法师

    题目 分析 首先考虑如果修改操作都是单点修改怎么做, 以第一种修改为例那么就是 \[\left[\begin{matrix}A\\B\\C\\1\end{matrix}\right] \times \ ...