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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 双11大促承载流量洪峰的利器



阿里云数据库已连续多年稳定支撑天猫双11,历经极端流量场景淬炼。除了保障稳定顺滑的基本盘,今年大促期间数据库通过 全面云原生化 ,大幅提升用户体验,让技术帮助业务产生更有价值的消费者体验,持续通过 技术创新赋能用户 ,引领技术发展路径。


双11已圆满落幕,但技术的探索,仍未止步。 “阿里云数据库” 公众号特此推出 《好科技的新起点——2021双11阿里云数据库技术揭秘》 系列干货文章,为你讲述年度“技术大考”背后的故事,敬请关注!



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


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

image.png



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


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


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


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


TairSQL最为关键的持久内存存储技术是Tair在技术应用上持续创新的又一里程碑:基于英特尔(Intel)傲腾™持久化内存硬件(Optane PMem),Tair于2018年正式开始投入持久化内存的研究和落地,成功应用于当年双11的电商商品核心集群中,服务于KV缓存场景,大幅降低了成本,是中国首个在生产环境正式部署应用英特尔持久化内存硬件(Optane PMem)的产品。了解®英特尔傲腾™持久内存(Optane PMem),请访问:https://www.intel.com/content/www/cn/zh/architecture-and-technology/optane-dc-persistent-memory.html


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)。


lQLPDhr00YyeYfPNAwzNBsqwnS_VsWxv-JMBvlp_5UCZAA_1738_780.png


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


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


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


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


相关文章
|
2月前
|
编解码 Android开发 UED
构建高效Android应用:从内存优化到用户体验
【10月更文挑战第11天】本文探讨了如何通过内存优化和用户体验改进来构建高效的Android应用。介绍了使用弱引用来减少内存占用、懒加载资源以降低启动时内存消耗、利用Kotlin协程进行异步处理以保持UI流畅,以及采用响应式设计适配不同屏幕尺寸等具体技术手段。
56 2
|
4月前
|
编解码 Android开发 UED
【性能狂飙!】揭秘Android应用极速变身秘籍:内存瘦身+用户体验升级,打造丝滑流畅新境界!
【8月更文挑战第12天】构建高效Android应用需全方位优化,尤其重视内存管理和用户体验。通过弱引用降低内存占用,懒加载资源减少启动负担。运用Kotlin协程确保UI流畅不阻塞,响应式设计适配多屏需求。这些策略共同提升了应用性能与用户满意度。
58 1
|
4月前
|
缓存 监控 Android开发
构建高效的Android应用:从内存优化到用户体验
【7月更文挑战第57天】 在竞争激烈的移动市场中,一个高效、流畅且具有优秀用户体验的Android应用是成功的关键。本文将深入探讨如何通过内存管理和界面优化来提升应用性能,包括实用的编程技巧和策略,以及如何利用Android系统提供的工具进行调试和性能监控。读者将学习到如何识别和解决常见的性能瓶颈,以及如何设计出既美观又实用的用户界面。
|
5月前
|
Java Serverless API
云原生应用问题之将文档中的代码部署在函数计算平台上会提升用户体验如何解决
云原生应用问题之将文档中的代码部署在函数计算平台上会提升用户体验如何解决
47 0
|
7月前
|
监控 Android开发 UED
构建高效的Android应用:从内存管理到用户体验
【5月更文挑战第28天】 在移动开发的世界中,打造一个既快速又高效的Android应用是每个开发者追求的目标。本文将深入探讨如何通过合理的内存管理策略、优化的代码实践和用户界面设计的提升来增强应用性能。我们将剖析内存泄漏的根源,提供解决方案,探索Kotlin与Java在性能上的差异,并分析如何利用Android系统提供的工具监控和改善应用表现。此外,我们还将讨论Material Design的应用以及其对用户体验的影响。通过这些技术的综合运用,你将能够为用户提供更流畅、响应更快的使用体验。
|
7月前
|
缓存 Java Android开发
构建高效Android应用:从内存优化到用户体验
【4月更文挑战第18天】 在移动开发领域,特别是针对Android系统,性能优化和内存管理是确保应用流畅运行的关键。本文将深入探讨如何通过各种技术手段提升Android应用的性能,包括内存使用优化、UI渲染效率提高以及响应速度加快等方面。文章不仅涉及理论分析,还包含了实用的代码示例和最佳实践建议,旨在帮助开发者构建出既节省资源又具有良好用户体验的高效Android应用。
|
7月前
|
移动开发 测试技术 Android开发
构建高效的Android应用:从内存优化到用户体验
【4月更文挑战第16天】 在移动开发领域,打造一个高效的Android应用并非易事。它要求开发者深入理解系统资源管理,并兼顾流畅的用户体验设计。本文将探讨如何通过内存优化策略和界面响应性提升,来实现这一目标。我们将剖析内存泄漏的根本原因,提供定位与解决的实践方法,并讨论如何通过异步处理和UI线程优化来保持应用的流畅性。
35 0
|
存储 NoSQL Cloud Native
云原生数据库 Tair(一)
云原生数据库 Tair(一)
307 1
|
存储 NoSQL Cloud Native
云原生数据库Tair(二)
云原生数据库Tair(二)
262 0