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.
A otro idioma
del contenido fuente
arxiv.org
Ideas clave extraídas de
by Ziheng Wang,... a las arxiv.org 03-14-2024
https://arxiv.org/pdf/2403.08062.pdfConsultas más profundas