致力于优化学习到的索引,以实现高性能、内存高效性以及对非统一内存架构(NUMA)的支持
《ACM Transactions on Architecture and Code Optimization》:Towards Optimizing Learned Index for High Performance, Memory Efficiency and NUMA Awareness
【字体:
大
中
小
】
时间:2025年11月07日
来源:ACM Transactions on Architecture and Code Optimization
编辑推荐:
learned indexes通过机器学习模型预测数据分布,显著优于传统B+树等索引结构,但在空间效率、NUMA兼容性和持久化支持方面仍有局限。本文提出DiffLex,通过热冷数据差异化存储(热数据存于稀疏delta和hot cache,冷数据存于压缩密集数组),结合NUMA节点内部分布delta和跨节点复制hot cache,实现性能提升3.88倍同时保持紧凑内存占用,并设计DiffLex+P支持持久内存设备。实验表明DiffLex在单节点和分布式环境下均优于ALEX、LIPP等,且通过动态调整采样率和压缩策略优化扩展性。
在数据存储领域,索引结构是提升数据访问效率的关键技术之一。传统索引,如Trie树和B+树,长期作为数据库、文件系统和搜索引擎的核心组件,为数据检索提供了基础支持。然而,随着数据量的指数级增长,这些经典索引在性能和空间效率方面逐渐显现出局限性。近年来,学习型索引(Learned Index)作为一种新兴的索引设计范式,通过引入机器学习模型来预测数据的位置,显著提升了索引的查询效率。尽管如此,现有的学习型索引仍然面临性能与空间消耗之间的权衡问题,以及在多NUMA节点环境下的扩展性挑战。为了解决这些问题,本文提出了一种名为DiffLex的学习型索引,它在保持高性能的同时,优化了内存使用效率,并引入了对NUMA架构的感知能力。
学习型索引的核心思想是利用机器学习模型来逼近数据的累积分布函数(CDF),从而能够高效地预测特定键值在数据集中的位置。这种设计减少了传统索引在查找过程中所需的内存访问次数,使得查询效率接近于O(1)。然而,学习型索引在实际应用中仍存在两个主要障碍。第一,性能和空间占用之间的权衡问题。为了提升性能,学习型索引通常需要采用更稀疏的数据结构,这会导致较高的内存消耗,从而增加硬件成本。第二,多NUMA节点环境下的性能扩展问题。现有的学习型索引往往忽略了NUMA架构的影响,导致在多节点环境下性能提升有限,甚至出现性能下降的现象。
为了应对这些挑战,DiffLex采用了差异化的数据管理策略。它将数据分为热数据(hot data)和冷数据(cold data),分别采用不同的存储结构和管理方式。对于热数据,DiffLex使用稀疏的delta数组进行存储,并在每个NUMA节点上进行复制和分区,以确保在多节点环境下的高效访问和数据一致性。这种方法不仅减少了跨NUMA节点的内存访问,还降低了整体的内存消耗。对于冷数据,DiffLex则采用密集数组进行存储,并支持压缩技术以进一步节省空间。通过这种方式,DiffLex在保持高性能的同时,有效优化了内存使用效率。
DiffLex的设计包括四个关键部分:稀疏delta数组、热缓存数组、NUMA感知管理机制和冷数据压缩技术。稀疏delta数组用于存储新插入的数据,其密度较低,以减少数据移动的频率。热缓存数组则用于存储频繁访问的数据,通过局部性原理提高查询效率。NUMA感知管理机制通过在每个NUMA节点上复制热缓存数组,并对稀疏delta数组进行分区,确保数据访问主要发生在本地内存中,从而减少跨节点访问带来的延迟。冷数据压缩技术采用分段压缩方法,仅在需要时解压特定的数据段,从而在不显著影响性能的前提下节省空间。
在实际应用中,DiffLex还考虑了持久化存储的需求,提出了一个持久化版本DiffLex+P,以适应新兴的持久化内存(PM)设备。DiffLex+P通过将索引的内部节点存储在持久化内存中,并利用日志机制(WAL)确保数据的持久性和一致性。此外,它采用了选择性持久化策略,将热数据缓存存储在DRAM中,而冷数据则存储在持久化内存中,以平衡性能和空间效率。这一设计使得DiffLex+P在多NUMA节点环境下表现出良好的扩展性和性能。
通过实验评估,DiffLex在单NUMA节点环境下,相比现有学习型索引,实现了1.23到2.08倍的性能提升,同时保持了相似的内存占用。在多NUMA节点环境下,DiffLex的性能进一步提升,达到3.88倍的性能优势。此外,DiffLex+P在持久化存储方面表现出色,相比APEX等现有持久化学习型索引,其在插入和查询操作中的性能提升显著。实验还表明,DiffLex在不同数据集和工作负载模式下均表现出良好的适应性,尤其是在处理高偏斜(skewness)数据时,其性能优势更加明显。
综上所述,DiffLex通过差异化的数据管理策略,有效解决了学习型索引在性能与空间效率之间的权衡问题,并引入了对NUMA架构的感知能力,提升了多节点环境下的性能扩展性。此外,其持久化版本DiffLex+P结合了新兴的持久化内存技术,进一步优化了数据的持久性和性能。这些设计使得DiffLex在实际生产环境中具有更高的应用价值,为大数据存储和检索提供了新的解决方案。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号