感悟记录(1)

数据库系统的新机遇—学习型索引

数据库在大数据时代需要处理 PB 级,甚至 ZB 级的数据,传统索引结构,将面临空间代价高、查询效率低的问题。新兴的学习型索引术通过对底层数据分布、查询负载等特征进行建模和学习,有效的提升了索引性能,并减少了空间开销。本文将从构建学习型索引的原理以及面临的写扩展问题入手,分析各种写扩展方式的特点,并对学习型索引未来的研究方向进行展望。

一、学习型索引构建理论与写扩展问题

学习型索引的构建理论来自于对B树实现数据索引的原理分析。给定一个查询键,B 树通过树遍历算法,逐步缩小查询范围,直到找到包含查询键的叶子节点为止。在叶子节点内部,数据是按照顺序存储在数组中,因此通过顺序扫描或者二分查找可快速定位到查询键对应的记录在磁盘页中的位置。Kraska [1] 等人将 B 树看作是键映射到记录位置的一种模型,因此可用机器模型(例如神经网络、线性回归等)替换。 B 树将查询键映射到一个具有误差约束的范围内,如果查询键在误差约束范围内存在,则保证一定能够在这个范围内检索到查询键的准确位置。
但是,如果利用神经网络这样的复杂模型来拟合键-记录位置的映射关系,将导致模型的复杂度急速上升,同时无法保证对于特定键的拟合误差在一个很小的范围内。由此,RMI结构被提出来,以简单模拟来拟合键-记录位置的映射关系。RMI 模型是一种递归回归模型,为了减小模型预测误差(预测位置与实际位置之间的距离),它采用了多个模型进行预测,并按照层次结构的方式组织模型。RMI 模型的基本思想是学习模型来近似有序数组键的累积分布函数 CDF。模型表示键与记录位置之间映射关系的近似函数,即pos= F( key)* N,其中,N表示键的总数量;F(Key)表示键的近似累积分布函数,用来估计键小于或者等于查询键的概率;pos表示查询键的预测位置。RMI 模型通过计算模型的最大误差和最小误差来提供与 B 树索引类似的误差保证。如果查询键存在,则在误差保证的范围内一定能够找到查询键。
尽管基于模型预测的学习型索引可以提供高查询性能,低内存开销,但是无法提供关于写操作的承诺。导致这样问题的原因是,新插入的键值对将破坏原有的有序键值对分布规律。旧的学习模型拟合的是静态数据集下,键值对的数据分布规律,但是新键值对插入后,导致旧键值对的移位,从而旧键值对的位置信息变化,而旧模型无法感知。如何为学习型索引进行写操作的扩展成为当下学习型索引面临的巨大挑战。

二、学习型索引的写扩展

目前,为学习型索引进行写扩展的思路主要分为两种方法。
第一种方法是基于Kraska的增量树扩展。Kraska在其提出学习型索引的论文中提到了一种简易的写扩展方法。这就是说,在静态数据集上构建学习型索引后,对于后续的插入操作,则利用传统的B+树,跳表等结构来吸收。当这些增量树结构扩展到一定程度的时候再进行模型重训练,与原先的学习型索引合并,并构建新的初始增量树。这种方法之下,对于学习型索引的访问复杂度是O(1)+O(logk),对于增量树的访问成为性能瓶颈,并且优化k的大小便成为一个可能的方向。按照这个思路,XIndex[2]将增量树构建在又RMI结构生成的子模型上,一个子模型负责一个子分区内的键值对的索引,同时,落入此分区的键值对将被此分区内的增量树所吸收。由此,k的大小被降低,从而使得XIndex相对于Kraska的写扩展方法获得性能提升。而随后,FINEDex[3]提出更加激进的策略,即,为每个键值对构建单独的增量树,从而将增量树的大小和规模再次降低,并获得相比XIndex更加好的读写性能。但是这种方法也导致了空间开销的增长,因为原先子分区共享的增量树指针变为了单一键值对拥有一个增量树指针。
第二种方法是基于ALEX[4]所提出的,基于模型的插入进行写扩展。这就是说,原先的模型天生带有误差,对于一个key来说,predict(key) != loc(key)是很常见的事情,因此,如果再训练完成后,利用学习到的模型对已有key进行位置转换,将loc(key)重新置为predict(key),那么对于已有键值对的预测精确度就会得到巨大提升,同时这样的转换会在数据存储节点上留下一个个的间隙。由此,ALEX认为可以利用模型引导新的键值对插入,并利用这些间隙吸收新的键值对。由此,模型不再受增量树O(logk)的复杂度的影响,并再次获得读写性能提升。但是这样的办法是无法进行多线程扩展的。这是由于,基于模型引导的插入将导致读,写范围和方向的不固定,从而限制并发锁的设计,并导致死锁问题。而为了进行多线程扩展,APEX[5]和PLIN[6]基于ALEX,提出了,限制在原学习型索引数据模型上进行插入的范围和方向,同时为溢出的键值对构建额外的增量树。最新的面向分离式内存的学习型索引研究,XSTORE[7]和Rolex[8]延续了相同的思路,一个采用了B+树,另一个采用了有序链表。尽管ALEX展示了构建O(1)复杂度的访问复杂度的,具备写扩展特性的学习型索引的可能性,但是在面临多线程扩展的问题时,学习型索引的写扩展复杂度又再次回到O(1)+O(logk)。

三、学习型索引的写扩展的未来展望

ALEX提出的写扩展本质是,利用已经学到的数据分布规律来继续维护学习型索引,而基于增量树进行写扩展的思路本质则是,认为新插入键值对需要通过基于大小比较的办法才能构建增量缓存。
由此,我认为当前的写扩展研究忽视了已经学习到的数据分布规律,而学习到的数据分布规律往往以多个线性模型的形式展现,并且这些线性模型是严格单调递增的。换句话来说,已经学习到的数据分布规律已经能够揭示新键值对的大小关系,无需以大小比较的方式来构建增量缓充。利用已经学习到的数据分布规律,我们可以采用位置预测计算的方式找到增量缓冲区上的新键值对,而无需经过大小比较。从而,基于数据分布规律构建的写扩展的学习型索引的访问复杂度便可以降低到O(1)+O(1),而对比之下,基于大小比较构建的写扩展的学习型索引的访问复杂度则始终为O(1)+O(logk)。前者所获得的性能提升来源于其对潜在的数据分布信息的完美利用。

参考文献

[1] Kraska T, Beutel A, Chi H, Dean J, Polyzotis N. The case for learned index structures[C]//Proceedings of the 2018 International Conference on Management of Data. Houston,USA, 2018: 489-504
[2] Tang C, Wang Y, Dong Z, et al. XIndex: a scalable learned index for multicore data storage[C]//Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. San Diego, USA, 2020: 308-320
[3] Pengfei Li, Yu Hua, Jingnan Jia, Pengfei Zuo. FINEdex: A Fine-grained Learned Index Scheme for Scalable and Concurrent Memory Systems.[J]//Proceedings of the VLDB Endowment,2022(15),2:321-334.
[4] Ding J, Minhas U F, Yu J, et al. ALEX: an updatable adaptive learned index[C]//Proceedings of the ACM SIGMOD International Conference on Management of Data. Portland, USA, 2020: 969-984
[5] Baotong Lu, Jialin Ding, Eric Lo, Umar Farooq Minhas, and Tianzheng Wang. 2021. APEX: A high-performance learned index on persistent memory.[C] Proc. VLDB Endow. 15, 3 (2021), 597–610.
[6] Z. Zhang, Z. Chu, P. Jin, Y. Luo, X. Xie, S. Wan, Y. Luo, X. Wu, P. Zou, C. Zheng,et al. Plin: a persistent learned index for non-volatile memory with high performance and instant recovery. [C]VLDB, 16(2):243–255, 2022
[7] Xingda Wei, Rong Chen, and Haibo Chen. Fast rdmabased ordered key-value store using remote learned cache. [C]In 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI), pages 117135, 2020.
[8] Pengfei Li, Yu Hua, Pengfei Zuo, Zhangyu Chen, and Jiajie Sheng. ROLEX: A Scalable RDMA-oriented Learned Key-Value Store for Disaggregated Memory Systems.[C] Proceedings of the 21st USENIX Conference on File and Storage Technologies.2023:99-113.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值