1. ALEX: An Updatable Adaptive Learned Index
- Author
-
Jia Yu, Donald Kossmann, Hantian Zhang, Jaeyoung Do, Chi Wang, Jialin Ding, Umar Farooq Minhas, Yinan Li, Johannes Gehrke, Tim Kraska, Badrish Chandramouli, and David B. Lomet
- Subjects
FOS: Computer and information sciences ,Computer Science - Machine Learning ,Information retrieval ,Range query (data structures) ,Point (typography) ,Computer science ,Search engine indexing ,Databases (cs.DB) ,0102 computer and information sciences ,02 engineering and technology ,01 natural sciences ,Field (computer science) ,Machine Learning (cs.LG) ,B-tree ,Tree (data structure) ,Index (publishing) ,Computer Science - Databases ,010201 computation theory & mathematics ,020204 information systems ,Computer Science - Data Structures and Algorithms ,0202 electrical engineering, electronic engineering, information engineering ,Memory footprint ,Key (cryptography) ,Data_FILES ,Data Structures and Algorithms (cs.DS) - Abstract
© 2020 Association for Computing Machinery. Recent work on "learned indexes" has changed the way we look at the decades-old field of DBMS indexing. The key idea is that indexes can be thought of as "models" that predict the position of a key in a dataset. Indexes can, thus, be learned. The original work by Kraska et al. shows that a learned index beats a B+ tree by a factor of up to three in search time and by an order of magnitude in memory footprint. However, it is limited to static, read-only workloads. In this paper, we present a new learned index called ALEX which addresses practical issues that arise when implementing learned indexes for workloads that contain a mix of point lookups, short range queries, inserts, updates, and deletes. ALEX effectively combines the core insights from learned indexes with proven storage and indexing techniques to achieve high performance and low memory footprint. On read-only workloads, ALEX beats the learned index from Kraska et al. by up to 2.2X on performance with up to 15X smaller index size. Across the spectrum of read-write workloads, ALEX beats B+ trees by up to 4.1X while never performing worse, with up to 2000X smaller index size. We believe ALEX presents a key step towards making learned indexes practical for a broader class of database workloads with dynamic updates.
- Published
- 2019