Skip to main content
QUICK REVIEW

[논문 리뷰] RadixSpline: A Single-Pass Learned Index

Andreas Kipf, Ryan Marcus|arXiv (Cornell University)|2020. 04. 30.
Advanced Data Storage Technologies참고 문헌 30인용 수 26
한 줄 요약

RadixSpline (RS)는 정렬된 데이터를 한 번만 스캔하면서 효율적으로 구축되는 단일 스캔 학습된 인덱스로, 두 단계의 접근 방식을 사용한다: 제한된 오차를 갖는 누적분포함수(CDF)에 선형 스플라인을 피팅하고, 빠른 루팅을 위한 레디스 테이블을 활용한다. RMI와 같은 최신 학습된 인덱스와 경쟁 가능한 크기와 조회 성능를 달성하며, 조정 가능한 하이퍼파rameter가 단 두 개인데다 구현 복잡도가 매우 낮다.

ABSTRACT

Recent research has shown that learned models can outperform state-of-the-art index structures in size and lookup performance. While this is a very promising result, existing learned structures are often cumbersome to implement and are slow to build. In fact, most approaches that we are aware of require multiple training passes over the data. We introduce RadixSpline (RS), a learned index that can be built in a single pass over the data and is competitive with state-of-the-art learned index models, like RMI, in size and lookup performance. We evaluate RS using the SOSD benchmark and show that it achieves competitive results on all datasets, despite the fact that it only has two parameters.

연구 동기 및 목표

  • 기존 학습된 인덱스가 다중 스캔 학습 과정에서 겪는 빌드 블로킹 문제를 해결하고, 정렬된 데이터를 한 번만 스캔하면서 구축 가능한 학습된 인덱스 아키텍처를 설계하는 것.
  • 최소한의 메모리 사용량과 낮은 지연 시간으로 효율적인 등가 조회 및 범위 조회(예: 하한값 조회)를 지원하는 것.
  • 스플라인 오차와 레디스 테이블 크기의 두 가지 하이퍼파rameter로만 구성하여 하이퍼파rameter 조정을 단순화하는 것.
  • 실제 시스템, 특히 병합 작업 중에 인덱스 재구성이 발생하는 LSM 트리 아키텍처에서의 적용 가능성을 평가하는 것.

제안 방법

  • 사용자가 정의한 스플라인 오차 파rameter 이내로 각 세그먼트의 최대 오차가 제한되는 방식으로, 정렬된 데이터의 누적분포함수(CDF)에 조각별 선형 스플라인을 피팅한다.
  • 공통 접두어 비트를 제외한 키의 상위 비트(예: 20비트)를 사용하여 평탄한 레디스 테이블을 구성하여 관련 스플라인 세그먼트로의 빠른 루팅을 가능하게 한다.
  • 정렬된 데이터를 한 번만 스캔하면서 스플라인 피팅과 레디스 테이블 구축을 동시에 수행하여 요소당 일정 시간 작업을 보장한다.
  • 선택된 스플라인 세그먼트 내에서 이진 탐색을 수행하여 정확한 키를 빠르게 위치시켜 조회 지연 시간을 최소화한다.
  • 기존 B+트리 및 ART 인덱스와의 비교를 위해 스트라이드 기반 색인 전략(예: 매 32번째 키)을 사용한다.
  • 실제 워크로드 데이터셋을 사용하여 SOSD 벤치마크를 통해 빌드 시간, 조회 지연 시간, 인덱스 크기 등을 측정하여 성능을 평가한다.

실험 결과

연구 질문

  • RQ1정렬된 데이터를 한 번만 스캔하면서도 경쟁 가능한 크기와 조회 성능를 유지할 수 있는 학습된 인덱스를 설계할 수 있는가?
  • RQ2RMI와 같은 다중 스캔 학습된 인덱스와 비교해 볼 때, 단일 스캔 학습된 인덱스의 인덱스 크기와 쿼리 지연 시간은 어떻게 되는가?
  • RQ3스플라인 오차와 레디스 크기의 두 하이퍼파rameter를 통해 메모리 사용량과 조회 속도 간의 트레이드오프를 얼마나 효과적으로 조정할 수 있는가?
  • RQ4RadixSpline는 LSM 트리 아키텍처에 효과적으로 통합되어 읽기 성능을 향상시키면서도 쓰기 오버헤드를 최소화할 수 있는가?
  • RQ5다른 학습된 인덱스 아키텍처와 비교해 볼 때, RadixSpline는 데이터 치우침이나 아웃라이어가 많은 분포 상황에서도 어떤 성능을 보이는가?

주요 결과

  • RadixSpline는 RMI 모델과 경쟁 가능한 조회 지연 시간을 달성하였으며, 모든 데이터셋에서 평균 지연 시간이 800ns 이하였다.
  • RadixSpline의 인덱스 크기는 압축되지 않은 키 크기의 약 6.6%이며(2억 개의 64비트 키 기준 100MiB), RMI와 유사하고 전통적인 인덱스보다 훨씬 작다.
  • RadixSpline의 빌드 시간은 ART 및 B+트리 수준이며, RMI보다 훨씬 빠르며 RMI는 다중 학습 스캔이 필요하기 때문이다.
  • RocksDB에서의 LSM 트리 실험에서 B+트리를 RadixSpline로 교체함으로써 평균 읽기 시간이 20% 이상 감소했고, 총 실행 시간은 712초에서 521초로 감소하였으며, 메모리 사용량은 45% 감소했다.
  • 스플라인 오차를 2에서 16으로, 레디스 비트를 25에서 20으로 조정함으로써 메모리 사용량은 약 650MiB에서 약 200MiB로 99.9% 감소시켰고, face 데이터셋에서는 성능 저하가 11.5%에 그쳤다.
  • 단일 스캔 구축 방식 덕분에 LSM 트리 병합 프로세스에 효율적으로 통합 가능하며, 이미 재빌드가 수행되는 환경에서 지연 오버헤드는 거의 없다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.