[color=rgba(0, 0, 0, 0.8)]X-Engine如何通过分析负载的访问特征来对数据实现精准的冷热分离,搭配混合存储架构实现自动归档冷数据,为用户提供极致的性价比。 [color=rgba(0, 0, 0, 0.8)] [color=rgba(0, 0, 0, 0.8)]作者 | 张腾 王剑英 蔡鑫 [color=rgba(0, 0, 0, 0.8)]01 [color=rgba(0, 0, 0, 0.8)]X-Engine 简介 [color=rgba(0, 0, 0, 0.8)]X-Engine 是阿里云数据库团队自研的存储引擎,不仅支撑阿里集团淘宝天猫、钉钉等核心业务,也在公有云上大规模售卖。X-Engine借鉴了LSM-tree的设计思想,同时在存储成本方面比InnoDB有3-5倍的优势。 [color=rgba(0, 0, 0, 0.8)]X-Engine持久化层采用三层LSM-tree(L0/L1/L2)的组织结构,内存表采用skiplist作为索引组织,所有写入操作都直接插入内存表,和使用update-in-place更新方式相比,减少了随机IO。同时,X-Engine借助compaction这一后台操作对磁盘上的数据进行合并,删除冗余数据,保证了读取效率和空间效率。关于X-Engine的整体架构和相关优化可以参见 X-Engine: MySQL RDS的新存储引擎 。 [color=rgba(0, 0, 0, 0.8)]层次化的存储结构决定了数据的放置对X-Engine的性能和成本影响深远。X-Engine的设计初衷也是希望磁盘上的热数据尽量停留在L0和L1层,一方面是缩短热数据的读取路径,另一方面也尽量减少L1层和L2层合并带来的读写放大问题。 [color=rgba(0, 0, 0, 0.8)]由于OLTP型业务对访问延迟非常敏感,云厂商一般采用本地SSD或者ESSD云盘作为存储介质,实际上,对于流水型业务(交易、物流、即时通讯等),大部分数据在生成之后访问频次会逐渐降低,甚至不再被访问, 对于这些冷数据,如果和热数据一样存储在NVMe SSD等高速存储介质上,是对存储资源的浪费 。本文主要阐述了X-Engine如何通过分析负载的访问特征来对数据实现精准的冷热分离,搭配混合存储架构实现自动归档冷数据,为用户提供极致的性价比。
|