Der Artikel beschreibt eine neue Fehlertoleranzstrategie namens "Write-ahead Lineage" für Pipeline-Abfrage-Engines mit dynamischen Aufgabenabhängigkeiten. Im Gegensatz zu Spark, wo die Lineage vor der Abfrageausführung bestimmt wird, zeichnet Write-ahead Lineage die Lineage zur Laufzeit persistent auf, um dynamische Aufgabenabhängigkeiten zu unterstützen.
Nur KB-große Lineages werden persistent gespeichert anstelle von MB-großen Zwischenergebnissen, was den normalen Ausführungsoverhead im Vergleich zu Spooling oder Checkpointing-basierten Ansätzen minimiert. Um schnelle Fehlerwiederherstellungszeiten zu gewährleisten, verbrauchen Aufgaben nur Zwischenergebnisse mit persistenter Lineage, was globale Rollbacks bei Ausfällen verhindert. Darüber hinaus können verlorene Aufgaben aus verschiedenen Stufen in einer Pipeline-parallelen Art und Weise wiederhergestellt werden.
Die Autoren implementieren Write-ahead Lineage in einer verteilten Pipeline-Abfrage-Engine namens Quokka. Sie zeigen, dass Quokka auf dem TPC-H-Benchmark etwa 2-mal schneller als SparkSQL ist, bei ähnlicher Fehlerwiederherstellungsleistung.
다른 언어로
소스 콘텐츠 기반
arxiv.org
더 깊은 질문