Intérpretes Go más rápidos: Reduciendo la brecha con C++

2025-04-05
Intérpretes Go más rápidos: Reduciendo la brecha con C++

El motor de evaluación SQL que se incluye con Vitess, la base de datos de código abierto que impulsa PlanetScale, se implementó originalmente como un evaluador AST que operaba directamente en el AST SQL generado por nuestro analizador. Durante el último año, lo hemos ido reemplazando gradualmente con una Máquina Virtual que, a pesar de estar escrita de forma nativa en Go, tiene un rendimiento similar al código de evaluación C++ original en MySQL. Lo más notable es que la nueva Máquina Virtual ha demostrado repetidamente ser más fácil de mantener que el intérprete Go original, a pesar de ser órdenes de magnitud más rápida. Repasemos las opciones de implementación que hemos tomado para obtener estos resultados sorprendentes.

Desarrollo