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.
Til et andet sprog
fra kildeindhold
arxiv.org
Vigtigste indsigter udtrukket fra
by Ziheng Wang,... kl. arxiv.org 03-14-2024
https://arxiv.org/pdf/2403.08062.pdfDybere Forespørgsler