Interpréteurs Go plus rapides : combler l'écart avec C++
2025-04-05

Le moteur d'évaluation SQL fourni avec Vitess, la base de données open source qui alimente PlanetScale, a été initialement implémenté comme un évaluateur AST qui fonctionnait directement sur l'AST SQL généré par notre analyseur. Au cours de l'année écoulée, nous l'avons progressivement remplacé par une machine virtuelle qui, bien qu'écrite nativement en Go, offre des performances similaires au code d'évaluation C++ original de MySQL. Plus remarquable encore, la nouvelle machine virtuelle s'est avérée maintes fois plus facile à maintenir que l'interpréteur Go d'origine, même si elle est des ordres de grandeur plus rapide. Passons en revue les choix d'implémentation que nous avons faits pour obtenir ces résultats surprenants.
Développement