[논문 리뷰] Towards Zero-Overhead Adaptive Indexing in Hadoop
이 논문은 Hadoop에서 지연 인덱싱과 적응형 처리를 위한 LIAH(Lazy Indexing and Adaptivity in Hadoop)를 제안한다. LIAH는 MapReduce 작업 실행 중 발생하는 I/O 및 계산 작업에 부가적으로 인덱스를 생성함으로써 추가 비용 없이 작동하는 적응형 인덱싱 시스템이다. 기존 I/O 및 계산 작업에 인덱스 생성을 빌려쓰기 때문에 추가 I/O나 메모리 비용이 발생하지 않으며, 표준 Hadoop 대비 최대 52배의 성능 향상을 달성하고, 최소 네 번의 작업으로 완전한 인덱스에 수렴하며, 특히 초기 쿼리에서 매우 낮은 오버헤드를 유발한다.
Several research works have focused on supporting index access in MapReduce systems. These works have allowed users to significantly speed up selective MapReduce jobs by orders of magnitude. However, all these proposals require users to create indexes upfront, which might be a difficult task in certain applications (such as in scientific and social applications) where workloads are evolving or hard to predict. To overcome this problem, we propose LIAH (Lazy Indexing and Adaptivity in Hadoop), a parallel, adaptive approach for indexing at minimal costs for MapReduce systems. The main idea of LIAH is to automatically and incrementally adapt to users' workloads by creating clustered indexes on HDFS data blocks as a byproduct of executing MapReduce jobs. Besides distributing indexing efforts over multiple computing nodes, LIAH also parallelises indexing with both map tasks computation and disk I/O. All this without any additional data copy in main memory and with minimal synchronisation. The beauty of LIAH is that it piggybacks index creation on map tasks, which read relevant data from disk to main memory anyways. Hence, LIAH does not introduce any additional read I/O-costs and exploit free CPU cycles. As a result and in contrast to existing adaptive indexing works, LIAH has a very low (or invisible) indexing overhead, usually for the very first job. Still, LIAH can quickly converge to a complete index, i.e. all HDFS data blocks are indexed. Especially, LIAH can trade early job runtime improvements with fast complete index convergence. We compare LIAH with HAIL, a state-of-the-art indexing technique, as well as with standard Hadoop with respect to indexing overhead and workload performance.
연구 동기 및 목표
- 사용자가 사전에 인덱스를 정의해야 하는 Hadoop의 정적 인덱싱 기법의 한계를 해결하기 위해, 예측 불가능하거나 변화하는 워크로드에 대해 비현실적인 인덱스 정의를 피하기 위함.
- 업로드 시점에 워크로드 지식이 필요로 하는 HAIL과 같은 기존 인덱싱 기법의 높은 초기 비용과 유연성 부족 문제를 해결하기 위함.
- 사용자 개입 없이 자동으로 점진적이고 적응형으로 인덱스를 생성하여 빠르게 완전한 인덱스로 수렴시키기 위함.
- MapReduce 작업 실행 중에 발생하는 여유 CPU 사이클과 기존 I/O 작업을 활용하여 인덱싱 오버헤드를 최소화하기 위함.
- 쿼리가 입력 데이터의 일부 속성만 프로젝션하는 경우에도 효율적인 인덱싱을 지원하기 위해, 은폐된 프로젝션 및 지연 프로젝션 기법을 사용하기 위함.
제안 방법
- LIAH는 MapReduce 작업 실행 중에 HDFS 데이터 블록에 대해 클러스터링된 인덱스를 생성하며, 기존 데이터 읽기 및 계산 작업에 부가적으로 인덱스 생성을 수행한다.
- 인덱싱은 노드 간 병렬 처리되며, 맵 태스크 계산 및 디스크 I/O와 겹쳐지므로 추가 I/O나 메모리 오버헤드가 발생하지 않는다.
- 이전 인덱스에서 얻은 성능 향상을 재사용하는 급속 적응형 인덱싱을 통해 후속 인덱싱 작업을 가속화한다.
- 은폐 프로젝션 기법을 도입하여, 전체 튜플을 물리적으로 저장하지 않고도 부분 속성 프로젝션에 기반한 인덱스 생성을 가능하게 한다.
- 지연 프로젝션은 전체 속성 재구성을 필요한 순간까지 연기함으로써, 인덱싱 중 계산 비용을 감소시킨다.
- LIAH는 각 작업당 인덱싱할 데이터 블록 수를 동적으로 제어하여, 인덱싱 노력과 애플리케이션 성능 요구 사항 간의 균형을 이룬다.
실험 결과
연구 질문
- RQ1MapReduce 시스템에서 추가 I/O나 메모리 오버헤드 없이 인덱싱을 수행할 수 있는가?
- RQ2특히 예측 불가능하거나 변화하는 액세스 패턴을 가진 워크로드에서 Hadoop에서 효율적이고 확장 가능한 적응형 인덱싱을 어떻게 달성할 수 있는가?
- RQ3일반적인 MapReduce 작업 실행 내에서 인덱싱 생성을 얼마나 숨길 수 있으며, 이를 통해 작업 성능 저하 없이 구현할 수 있는가?
- RQ4조기 성능 향상과 인덱스 수렴 속도 사이에서 어떻게 균형을 이룰 수 있는가?
- RQ5입력 데이터에서 쿼리가 일부 속성만 프로젝션하는 경우에도 효율적인 인덱싱을 달성할 수 있는가?
주요 결과
- LIAH는 선택적 MapReduce 워크로드에서 표준 Hadoop 대비 최대 52배의 성능 향상을 달성하고, HAIL 대비 최대 24배의 성능 향상을 기록한다.
- 첫 번째 작업의 인덱싱 오버헤드는 HAIL 대비 11%에 불과하며, 이후 작업에서는 매우 낮은 수준(예: 10% 오퍼트 레이트에서 UserVisits의 경우 1%)으로 감소한다.
- 25% 오퍼트 레이트를 사용할 경우 LIAH는 네 번의 MapReduce 작업 내에 완전한 인덱스로 수렴하며, 10% 오퍼트 레이트일 경우 10개의 작업 내에 수렴한다.
- 은폐 프로젝션 기법은 저선택성 쿼리일 경우조차도 Synthetic 데이터셋에서 평균 6%의 낮은 오버헤드만 유발한다.
- Hadoop를 제외한 거의 모든 시나리오에서 LIAH는 뚜렷한 성능 우위를 보이며, 100% 오퍼트 레이트에서 첫 번째 쿼리에서는 Hadoop가 약간 더 빠른 유일한 예외를 제외하고는 모두 뛰어난 성능을 기록한다.
- 시스템은 하드웨어 확장성도 잘 유지하며, 신형 CPU에서 성능 향상을 보이며, 구성 가능한 오퍼트 레이트를 통해 인덱싱 노력과 애플리케이션 요구 사항 간의 효과적인 균형을 이룬다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.