Core Concepts
write-ahead 계보 기술은 Spark의 계보 기반 재실행과 write-ahead 로깅을 결합하여 동적 태스크 의존성을 가진 파이프라인 쿼리 엔진에서 효율적인 장애 복구를 지원한다.
Abstract
이 논문은 동적 태스크 의존성을 가진 파이프라인 쿼리 엔진을 위한 새로운 장애 복구 기술인 write-ahead 계보를 제안한다. 기존 Spark의 계보 기반 복구와 달리, write-ahead 계보는 런타임에 계보 정보를 지속적으로 기록하여 동적 태스크 의존성을 지원한다. 중간 출력물 대신 KB 크기의 계보 정보만 기록하므로 일반 실행 오버헤드가 매우 낮다. 또한 계보가 기록된 중간 출력물만 소비하여 전역 롤백을 방지하고, 다른 단계의 손실 태스크를 병렬로 복구할 수 있다. Quokka라는 분산 파이프라인 쿼리 엔진에 구현된 write-ahead 계보는 TPC-H 벤치마크에서 SparkSQL 대비 약 2배 빠른 성능을 보이면서도 유사한 장애 복구 성능을 달성한다.
Stats
TPC-H 쿼리 9의 경우, Spark의 장애 복구 오버헤드는 최대 1.8배인 반면 Quokka는 1.2배에 불과하다.
Quotes
"write-ahead 계보는 Spark의 계보 기반 재실행과 write-ahead 로깅을 결합하여 동적 태스크 의존성을 가진 파이프라인 쿼리 엔진에서 효율적인 장애 복구를 지원한다."
"중간 출력물 대신 KB 크기의 계보 정보만 기록하므로 일반 실행 오버헤드가 매우 낮다."
"계보가 기록된 중간 출력물만 소비하여 전역 롤백을 방지하고, 다른 단계의 손실 태스크를 병렬로 복구할 수 있다."