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.
In un'altra lingua
dal contenuto originale
arxiv.org
Approfondimenti chiave tratti da
by Ziheng Wang,... alle arxiv.org 03-14-2024
https://arxiv.org/pdf/2403.08062.pdfDomande più approfondite