Schnellere Go-Interpreter: Aufholen zu C++

2025-04-05
Schnellere Go-Interpreter: Aufholen zu C++

Die SQL-Evaluierungs-Engine, die mit Vitess ausgeliefert wird, der Open-Source-Datenbank, die PlanetScale antreibt, wurde ursprünglich als ein AST-Evaluator implementiert, der direkt auf der von unserem Parser generierten SQL-AST arbeitete. Im letzten Jahr haben wir sie schrittweise durch eine virtuelle Maschine ersetzt, die, obwohl nativ in Go geschrieben, ähnliche Leistungen wie der ursprüngliche C++-Evaluierungscode in MySQL erbringt. Besonders bemerkenswert ist, dass sich die neue virtuelle Maschine immer wieder als einfacher zu warten erwiesen hat als der ursprüngliche Go-Interpreter, obwohl sie um Größenordnungen schneller ist. Lassen Sie uns die Implementierungsentscheidungen überprüfen, die wir getroffen haben, um diese überraschenden Ergebnisse zu erzielen.

Entwicklung