HeadlinesBriefing HeadlinesBriefing.com

Readyset SQL-Umschreibung: Datenfluss-Pipeline

Hacker News •
×

Die meisten Datenbanken führen Abfragen jedes Mal von Grund auf neu aus, wodurch die Lese-Latenz proportional zur Abfragekomplexität und Datengröße wird. Readyset verfolgt einen anderen Ansatz: Es kompiliert jede Abfrage in einen Datenflussgraphen—ein Netzwerk von Operatoren (Joins, Filter, Aggregationen, Projektionen), das das Abfrageergebnis kontinuierlich aufrechterhält, während sich die Daten ändern. Wenn eine Zeile im Upstream eingefügt, aktualisiert oder gelöscht wird, breitet sich die Änderung durch den Graphen aus, und das zwischengespeicherte Ergebnis wird inkrementell aktualisiert. Lesevorgänge werden zu Lookups in einer vorberechneten materialisierten Sicht, nicht zu vollständigen Abfrageausführungen.

Diese Architektur erzwingt strukturelle Einschränkungen für SQL. Binäre Joins erfordern Gleichheitsprädikate; Bereichsprädikate oder ausdrucksbasierte Join-Schlüssel werden nicht unterstützt. Korrelierte Unterabfragen müssen in äquivalente Joins umgeschrieben werden, da der Datenfluss keine Ausführung pro äußerer Zeile hat. Abgeleitete Tabellen werden unterstützt, kompilieren jedoch zu vollständig materialisierten Zwischenknoten; die Umschreibungs-Pipeline inline sie aggressiv, wo es sicher ist.

Unterstützte Join-Typen umfassen INNER, LEFT OUTER und CROSS; RIGHT und FULL OUTER werden aufgrund der Schwierigkeit, fehlende Übereinstimmungen zu verfolgen, nicht unterstützt. Aggregationen erfordern explizite GROUP BY-Spaltenverweise und mindestens eine von der Aggregation abgeleitete Projektion.

Der Kompromiss besteht darin, dass Abfragen in einer Form ausgedrückt werden müssen, die der Datenfluss-Engine kompilieren kann—restriktiver als Standard-SQL—aber die Belohnung ist inkrementelle Wartung und schnellere Lesevorgänge.

Quelle: Hacker News · Zusammengefasst von HeadlinesBriefing