Skip to main content
QUICK REVIEW

[논문 리뷰] Lightweight Asynchronous Snapshots for Distributed Dataflows

Paris Carbone, Gyula Fóra|arXiv (Cornell University)|2015. 06. 29.
Cloud Computing and Resource Management참고 문헌 15인용 수 53
한 줄 요약

이 논문은 분산 데이터플로우에서 상태 기반 스트림 처리를 위한 장애 내성적인 가벼운 비차단 알고리즘인 비동기 장벽 스냅샷팅(ABS)을 제안한다. ABS는 비순환적 데이터플로우에서는 오직 연산자 상태만 영속화하고, 순환적 데이터플로우에서는 최소한의 레코드만 선택적으로 로깅함으로써 스냅샷 크기를 최소화하며, 실행 시간 오버헤드가 극히 적은 선형 확장성을 달성하여, 처리량과 지연 시간에 민감한 워크로드에서 동기식 및 전통적인 비동기 스냅샷팅 방법보다 뛰어난 성능을 발휘한다.

ABSTRACT

Distributed stateful stream processing enables the deployment and execution of large scale continuous computations in the cloud, targeting both low latency and high throughput. One of the most fundamental challenges of this paradigm is providing processing guarantees under potential failures. Existing approaches rely on periodic global state snapshots that can be used for failure recovery. Those approaches suffer from two main drawbacks. First, they often stall the overall computation which impacts ingestion. Second, they eagerly persist all records in transit along with the operation states which results in larger snapshots than required. In this work we propose Asynchronous Barrier Snapshotting (ABS), a lightweight algorithm suited for modern dataflow execution engines that minimises space requirements. ABS persists only operator states on acyclic execution topologies while keeping a minimal record log on cyclic dataflows. We implemented ABS on Apache Flink, a distributed analytics engine that supports stateful stream processing. Our evaluation shows that our algorithm does not have a heavy impact on the execution, maintaining linear scalability and performing well with frequent snapshots.

연구 동기 및 목표

  • 상태 기반 스트림 처리 시스템에서 동기식 및 전통적인 비동기 스냅샷팅으로 인한 높은 실행 시간 오버헤드와 과도한 스냅샷 크기 문제를 해결하기 위해.
  • 실시간 클라우드 기반 데이터플로우 시스템에서 처리량과 지연 시간에 미치는 영향을 최소화하면서 장애 내성을 확보하기 위해.
  • 비순환 실행 그래프에서 전달 중인 레코드의 영속적 로깅을 방지함으로써 스토리지 오버헤드를 줄이기 위해.
  • 최소한의 선택적 레코드 로깅을 통해 순환적 데이터플로우 토폴로지로 효율적인 스냅샷팅을 확장하기 위해.
  • 빈번한 스냅샷에서도 선형 확장성과 낮은 실행 시간 오버헤드를 유지하기 위해.

제안 방법

  • 계산을 멈추지 않고 장벽을 사용하여 비동기적으로 스냅샷을 트리거하는 Asynchronous Barrier Snapshotting(ABS) 알고리즘을 제안한다.
  • 비순환적 토폴로지에서는 전달 중인 레코드를 생략하고 오직 연산자 상태만 캡처하므로 스냅샷 크기가 최소화된다.
  • 순환적 토폴로지에서는 그래프의 일부에 대해 하류 백업을 적용하여 복구에 필요한 레코드만 로깅한다.
  • 잡 매니저의 코ordinating 액터를 사용해 소스에 스테이지 장벽을 삽입하고 전역 스냅샷을 조율한다.
  • 분산 영속 스토리지에서 마지막 전역 스냅샷된 상태를 복원하는 복구 메커니즘을 구현한다.
  • 각 키의 집계 및 소스 오프셋 체크포인팅을 지원하기 위해 Apache Flink의 OperatorState 인터페이스와 통합한다.

실험 결과

연구 질문

  • RQ1비순환적 데이터플로우 토폴로지에서 실행을 차단하지 않고도 최소한의 스냅샷 크기를 달성할 수 있는가?
  • RQ2스토리지 오버헤드를 줄인 순환적 데이터플로우 그래프에서 일致된 전역 스냅샷을 효율적으로 계산할 수 있는가?
  • RQ3실시간 스트림 처리에서 동기식 및 전통적인 비동기 방법과 비교해 비동기 스냅샷팅의 실행 시간 영향은 어떠한가?
  • RQ4제안된 알고리즘이 클러스터 크기와 스냅샷 빈도 증가에도 선형 확장성을 유지할 수 있는가?
  • RQ5상태 기반 스트림 처리에서 스냅샷 오버헤드, 스토리지 비용, 복구 효율성 간의 상충 관계는 무엇인가?

주요 결과

  • ABS는 베이스라인 및 장애 내성적 실행 모두에서 선형 확장성을 달성하며, 5에서 40개의 클러스터 노드 사이에서도 안정적인 처리량을 유지한다.
  • ABS의 실행 시간 오버헤드는 동기식 스냅샷팅보다 현저히 낮으며, 특히 빈번한 간격에서 그 차이가 두드러진다. 후자는 차단으로 인해 성능 폭발을 유발한다.
  • 동기식 스냅샷팅은 계산을 멈추므로 높은 오버헤드를 유발하며, 지연 시간에 민감한 응용 프로그램에서 실시간 SLA를 위반한다.
  • ABS는 비순환 그래프에서 전달 중인 레코드의 영속적 로깅을 방지함으로써 스냅샷 크기를 줄이며, 오직 연산자 상태에 집중한다.
  • 순환 토폴로지에서는 복구에 필요한 레코드만 최소한으로 로깅함으로써 스토리지 비용과 재처리 비용을 줄인다.
  • 평가 결과 ABS는 최소한의 영향을 미치면서도 높은 처리량을 유지하여 정밀한 일회성 의미 전달 보장이 필요한 생산 워크로드에 적합함을 확인했다.

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

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

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

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