UpLIF: An Updatable Self-Tuning Learned Index Framework

Alireza Heidari, Amirhossein Ahmadi, Wei Zhang
8/7/2024
cs.DBcs.LGmath.OC

No confident code implementation found for this paper.

Abstract

The emergence of learned indexes has caused a paradigm shift in our perception of indexing by considering indexes as predictive models that estimate keys' positions within a data set, resulting in notable improvements in key search efficiency and index size reduction; however, a significant challenge inherent in learned index modeling is its constrained support for update operations, necessitated by the requirement for a fixed distribution of records. Previous studies have proposed various approaches to address this issue with the drawback of high overhead due to multiple model retraining. In this paper, we present UpLIF, an adaptive self-tuning learned index that adjusts the model to accommodate incoming updates, predicts the distribution of updates for performance improvement, and optimizes its index structure using reinforcement learning. We also introduce the concept of balanced model adjustment, which determines the model's inherent properties (i.e. bias and variance), enabling the integration of these factors into the existing index model without the need for retraining with new data. Our comprehensive experiments show that the system surpasses state-of-the-art indexing solutions (both traditional and ML-based), achieving an increase in throughput of up to 3.12 times with 1000 times less memory usage.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. Any repos shown below are weak matches — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Cite this paper

@article{heidari2024uplif,
  title  = {UpLIF: An Updatable Self-Tuning Learned Index Framework},
  author = {Alireza Heidari and Amirhossein Ahmadi and Wei Zhang},
  year   = {2024},
  eprint = {2408.04113},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2408.04113v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2408.04113.svg)](https://codeofpaper.com/paper/2408.04113)

Discussion