Cette pull request retire l'entrée pgrust du benchmark ClickBench. Les résultats rapportés par cette entrée proviennent d'un mécanisme écrit spécifiquement pour les 43 requêtes de ClickBench, et ses exécutions à chaud rejouent des réponses mises en cache lors de l'exécution précédente. Ces deux pratiques enfreignent les règles du benchmark, qui exigent de désactiver les caches de résultats de requêtes et les caches situés près de la fin du pipeline. L'entrée est également étiquetée comme non optimisée alors qu'elle est réglée pour ces requêtes exactes.
L'auteur a vérifié ces affirmations à partir du binaire publié de la version v0.4-preview et du code source public de la v0.3. Le binaire aarch64 intègre des chemins de code source pour un noyau écrit à la main pour chaque requête du benchmark, et des messages d'erreur portant le nom du benchmark apparaissent dans ses comparateurs de plans. Le code source de la v0.3 décrit des plans physiques écrits à la main pour les 43 requêtes, et plusieurs d'entre elles reçoivent leur réponse à partir de statistiques par partition sans analyser les données.
Les mesures locales sur une machine Graviton à 96 cœurs montrent que les temps d'exécution à chaud reflètent des verdicts rejoués et non une exécution réelle. Une requête de sous-chaîne qui a pris 10,8 secondes à froid s'exécutait en environ 5 millisecondes lorsqu'elle était répétée. La vitesse réelle à chaud du moteur pour un tel parcours est de quelques centaines de millisecondes, proche de ClickHouse sur le même matériel. Désactiver les paramètres de cache dans la configuration n'empêche pas l'accélération des requêtes répétées.
Les requêtes en dehors des 43 formes connues sont refusées, et le moteur ne dispose d'aucun chemin d'exécution général pour la table en colonnes. Ce retrait vise à garder les résultats du benchmark comparables et honnêtes.
Source: Hacker News · Résumé par HeadlinesBriefing