Skip to main content
QUICK REVIEW

[논문 리뷰] LRC: Dependency-Aware Cache Management for Data Analytics Clusters

Yinghao Yu, Wei Wang|arXiv (Cornell University)|2017. 03. 24.
Advanced Data Storage Technologies참고 문헌 19인용 수 5
한 줄 요약

이 논문은 데이터 분석 클러스터를 위한 종속성 인식 캐시 교체 정책인 LRC를 제안한다. LRC는 해당 블록에 의존하는 미처리 자식 블록의 수인 참조 수가 가장 낮은 데이터 블록을 교체한다. 응용 프로그램 수준의 DAG 의미론을 활용하여 LRC는 LRU 대비 최대 60% 향상된 캐시 히트 비율과 런타임을 달성하며, Spark 배포 환경에서 동일한 성능을 이룰 수 있도록 캐시 공간을 40%만 사용한다.

ABSTRACT

Memory caches are being aggressively used in today's data-parallel systems such as Spark, Tez, and Piccolo. However, prevalent systems employ rather simple cache management policies--notably the Least Recently Used (LRU) policy--that are oblivious to the application semantics of data dependency, expressed as a directed acyclic graph (DAG). Without this knowledge, memory caching can at best be performed by "guessing" the future data access patterns based on historical information (e.g., the access recency and/or frequency), which frequently results in inefficient, erroneous caching with low hit ratio and a long response time. In this paper, we propose a novel cache replacement policy, Least Reference Count (LRC), which exploits the application-specific DAG information to optimize the cache management. LRC evicts the cached data blocks whose reference count is the smallest. The reference count is defined, for each data block, as the number of dependent child blocks that have not been computed yet. We demonstrate the efficacy of LRC through both empirical analysis and cluster deployments against popular benchmarking workloads. Our Spark implementation shows that, compared with LRU, LRC speeds up typical applications by 60%.

연구 동기 및 목표

  • 기존의 LRU와 같은 전통적 캐시 정책이 응용 프로그램 수준의 데이터 종속성을 忽시하는 데서 비롯하는 비효율성을 해결하기 위해.
  • 데이터 처리 워크플로의 방향성 비순환 그래프(DAG) 구조를 활용하여 캐시 히트 비율을 향상시키고 응용 프로그램 응답 시간을 단축시키기 위해.
  • Spark나 Tachyon과 같은 DAG 기반 시스템에 쉽게 배포할 수 있는 경량이며 플러그인 방식의 캐시 관리 정책을 설계하기 위해.
  • 데이터 종속성의 의미론적 인식을 활용하여 멀티테넌트 환경에서의 효율적 캐시 공유를 가능하게 하기 위해.

제안 방법

  • LRC는 참조 수가 가장 작은 데이터 블록을 교체한다. 참조 수는 해당 블록에 의존하는 미물리화된 자식 블록의 수로 정의된다.
  • 참조 수는 런타임 중 DAG 구조와 작업 완료 상태에 따라 동적으로 업데이트된다.
  • LRC는 Spark에서 경량 참조 수 메시징으로 인해 최소한의 런타임 오버헤드를 가지는 플러그인 메모리 매니저로 구현된다.
  • 정 polit는 작업 제출 시점에 작업 DAG를 분석하고, 참조 수 업데이트를 관련 워커 노드에만 전파한다.
  • LRC-Online 버전은 실행 중 지속적으로 참조 수를 추적함으로써 동적 워크로드에 적응한다.
  • 시스템은 다른 DAG 기반 프레임워크와 멀티테넌트 캐시 공유 시스템으로의 확장성도 고려하여 설계되었다.

실험 결과

연구 질문

  • RQ1DAG 형태의 응용 프로그램 수준 데이터 종속성 의미론을 활용하면 데이터 분석 클러스터의 캐시 관리 효율성이 향상되는가?
  • RQ2LRC와 같은 참조 수 기반 교체 정책이 LRU와 같은 최근성 또는 빈도 기반 정책에 비해 캐시 히트 비율과 응용 프로그램 성능 측면에서 어떻게 비교되는가?
  • RQ3LRC는 응용 프로그램 성능을 유지하거나 향상시키면서 얼마나 많은 메모리 프로필을 줄일 수 있는가?
  • RQ4경쟁적인 캐시 요구를 가진 멀티테넌트 환경에서 LRC는 어떻게 확장되는가?

주요 결과

  • LRC는 동일한 캐시 메모리 양을 사용할 때 LRU 대비 응용 프로그램 런타임을 최대 60% 감소시킨다.
  • LRC는 캐시 공간을 LRU의 40%만 사용함으로써 동일한 응용 프로그램 성능을 달성한다.
  • 실사용 평가에서 LRC는 LRU 대비 최대 119%까지 캐시 히트 비율을 향상시킨다.
  • LRC-Online은 더 작은 캐시 크기와 더 높은 테넌트 수에서 LRU보다 더 큰 성능 향상을 기록하여 자원 압력 하에서 더 강력한 확장성을 보인다.
  • DAG 기반 액세스 패턴 분석을 통해 참조 수 지표가 최근성 또는 빈도보다 미래 액세스를 더 정확하게 예측하는 것으로 입증되었다.

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

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

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

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