为了减轻内存开销并减少关键路径上的数据移动,一种计算和空间效率高的学习索引有望提供高性能,并对传统索引结构进行补充。然而,在动态工作负载中,由于新插入项的数据放置效率低下和密集的锁争用,学习索引会导致性能下降,可扩展性差。此外,模型的重新训练耗时且阻塞,影响了索引操作的性能。
为了满足动态工作负载和高效重训练的需求,信息存储与光显示功能实验室博士生莫宇轩在华宇教授的指导下,提出了一种高度可扩展的自适应学习索引,即LOFT。LOFT采用无锁设计和自调整的重训练技术,可提供高吞吐量和低延迟。LOFT 通过使用比较与交换(CAS)原语和扩展的学习桶来处理溢出数据,使所有索引操作都能以无锁方式并发执行。为了最大限度地减少模型重新训练的影响,LOFT 利用影子节点为客户请求提供服务,并借助索引操作加速重新训练过程。为了适应动态工作负载,LOFT 会根据推断出的访问模式来决定何时以及如何执行重新训练。大量的实验结果表明,相比现有的传统索引结构,自适应基数树和最新的学习型索引方案, LOFT能够提高有效地提高吞吐,降低延迟,并且实现高可扩展性。
这项研究工作题为“LOFT: A Lock-free and Adaptive Learned Index with High Scalability for Dynamic Workloads”,被中国计算机学会推荐的A类国际学术会议The 20th European Conference on Computer Systems (EuroSys’25)录用。研究工作得到了国家自然科学基金项目(No. 62125202和No. U22B2022)的支持。
图 1 LOFT重训练流程图
图 2 不同索引结构在不同的读写比例负载下执行索引操作的性能