Interpretadores Go mais rápidos: Aumentando a velocidade com C++

2025-04-05
Interpretadores Go mais rápidos: Aumentando a velocidade com C++

O motor de avaliação SQL do Vitess, o banco de dados de código aberto que alimenta o PlanetScale, foi originalmente implementado como um avaliador AST que operava diretamente na AST SQL gerada por nosso analisador. Durante o ano passado, substituímos gradualmente por uma Máquina Virtual que, apesar de escrita nativamente em Go, tem um desempenho semelhante ao código de avaliação C++ original no MySQL. Mais notavelmente, a nova Máquina Virtual tem se mostrado repetidamente mais fácil de manter do que o interpretador Go original, embora seja ordens de magnitude mais rápida. Vamos revisar as escolhas de implementação que fizemos para obter esses resultados surpreendentes.

Desenvolvimento