Skip to main content
QUICK REVIEW

[논문 리뷰] APEX: A High-Performance Learned Index on Persistent Memory

Baotong Lu, Jialin Ding|arXiv (Cornell University)|2021. 05. 03.
Parallel Computing and Optimization Techniques참고 문헌 47인용 수 6
한 줄 요약

APEX는 지속 메모리(PM)를 위한 고성능, 지속 가능하고 동시성 처리가 가능한 학습된 색인으로, 학습된 색인의 데이터 분포 인지 효율성과 PM에 특화된 최적화를 융합한 것이다. ALEX의 모델 기반 아키텍처를 PM 인식 데이터 레이아웃, DRAM에 저장된 메타데이터 캐싱, 그리고 레이지 복구와 통합함으로써, 기존 PM 색인 대비 최대 15배 높은 처리량을 달성하고, 인텔 DCPMM에서 약 42ms 내로 즉각적인 복구를 구현한다.

ABSTRACT

The recently released persistent memory (PM) offers high performance, persistence, and is cheaper than DRAM. This opens up new possibilities for indexes that operate and persist data directly on the memory bus. Recent learned indexes exploit data distribution and have shown great potential for some workloads. However, none support persistence or instant recovery, and existing PM-based indexes typically evolve B+-trees without considering learned indexes. This paper proposes APEX, a new PM-optimized learned index that offers high performance, persistence, concurrency, and instant recovery. APEX is based on ALEX, a state-of-the-art updatable learned index, to combine and adapt the best of past PM optimizations and learned indexes, allowing it to reduce PM accesses while still exploiting machine learning. Our evaluation on Intel DCPMM shows that APEX can perform up to ~15x better than existing PM indexes and can recover from failures in ~42ms.

연구 동기 및 목표

  • 삽입 시 높은 PM 쓰기 대역폭 소비로 인해 발생하는 학습된 색인의 성능 저하 문제를 해결하기 위해.
  • 일반적으로 DRAM을 대상으로 설계되어 지속성 의미 체계가 부족한 학습된 색인에서 충돌 일관성과 즉각적인 복구를 가능하게 하기 위해.
  • 고성능 검색 및 삽입 성능을 유지하면서도, 메타데이터와 가속기 요소를 DRAM에 캐싱하여 PM 액세스를 줄이기 위해.
  • 학습된 색인 추상화와 함께 PM 최적화된 데이터 구조(예: 정렬되지 않은 오버플로 버킷)를 통합하여, 성능 저하 없이 효율적인 업데이트를 지원하기 위해.
  • 레이지 복구와 PM 인식 동기화 메커니즘을 활용하여 고처리량과 낮은 복구 시간을 동시에 달성하기 위해.

제안 방법

  • 업데이트 가능한 최신 학습된 색인인 ALEX을 재설계하여 데이터 레이아웃과 액세스 패턴을 지속 메모리에서 직접 작동하도록 조정하기 위해.
  • 고주기적 작업(예: 검색 및 삽입)에서 특히 중요한, 핵심 메타데이터(예: 모델 파라미터, 가속기)를 DRAM에 캐싱하여 PM 액세스를 줄이기 위해.
  • 비용이 많이 드는 데이터 이동을 방지하고 PM 쓰기 대역폭 소비를 줄이기 위해 삽입 시에 정렬되지 않은, 추가 전용 오버플로 버킷을 사용하기 위해.
  • 구조적 수정 작업(SMO) 빈도를 최소화하기 위해 [0.5, 0.9]의 느슨한 밀도 범위 정책을 적용하여, PM 쓰기 횟수와 동기화 오버헤드를 감소시키기 위해.
  • PMwCAS와 디스크립터 풀을 활용해 레이지 복구를 구현하여 즉각적인 재시작을 가능하게 하고, 일관성 검사를 런타임까지 연기하기 위해.
  • 다중 스레드 수준의 병렬 처리를 통해 여러 데이터 노드를 동시에 복구함으로써 장애 후 웜업 시간을 단축하기 위해.

실험 결과

연구 질문

  • RQ1학습된 색인이 높은 성능과 낮은 PM 대역폭 소비를 유지하면서 지속 메모리에 효율적이고 지속 가능한 방식으로 구현될 수 있는가?
  • RQ2지속 메모리에서 학습된 색인의 구조적 수정 작업(SMO)을 최소화하면 PM 쓰기 대역폭을 줄이고 확장성을 향상시킬 수 있는가?
  • RQ3메모리 상태 재구성에 의존하지 않고도 학습된 색인에서 즉각적인 복구를 달성할 수 있는가? 성능에 어떤 영향을 미치는가?
  • RQ4학습된 색인과 PM 최적화 기법을 융합한 하이브리드 색인 설계에서, PM 액세스 감소와 DRAM 사용량 간의 성능 트레이드오프는 어떠한가?
  • RQ5모델 기반 검색과 PM 최적화된 데이터 구조를 통합할 경우, 기존 B+-트리 기반 PM 색인과 비교해 성능과 복구 시간에 어떤 영향을 미치는가?

주요 결과

  • APEX는 인텔 옵테인 DCPMM 환경에서 고병렬 워크로드에서 기존 PM 최적화 색인들(예: uTree, LB+Tree, FPTree) 대비 최대 약 15배 높은 처리량을 달성한다.
  • APEX는 평균적으로 약 42ms 내로 장애 복구를 수행하며, 24개 스레드 환경에서 웜업 시간이 1.9초 이내로, 재시작 후 즉각적인 가용성을 보장한다.
  • DRAM에 가속기와 메타데이터를 캐싱함으로써 검색 성능은 1.76배, 삽입 성능은 2.21배 향상되어, PM 액세스 감소의 효과를 입증한다.
  • 느슨한 밀도 범위([0.5, 0.9])를 적용함으로써 SMO 빈도를 절반으로 줄였고, PM 쓰기 횟수를 감소시켜 성능을 1.21배 향상시켰다.
  • Longitudes에서 1억 건의 레코드를 로드한 후 APEX는 DRAM 0.23GB와 PM 2.14GB만 소비하여 낮은 DRAM 프로필과 높은 용량 활용도를 보였다.
  • APEX의 복구 시간은 1초 이내이며 데이터 크기와 비선형적으로 증가하고, uTree(1억 키에서 43초), LB+Tree(1억 키에서 7.2초)를 뛰어넘으며, FPTree와 BzTree와 경쟁 가능한 성능을 보였다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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