Contexte du benchmark TPC‑H
Le benchmark TPC‑H mesure le temps d’exécution de 22 requêtes analytiques sur un volume de données croissant. Au scale factor 10 (SF10), les requêtes lisent environ 15 Go de données compressées. Sur un processeur AMD 9950X3D, le moteur Umbra exécute l’ensemble des requêtes en 540 ms, ce qui correspond à un temps minimal imposé par la bande passante mémoire (54 GB/s) d’environ 280 ms. Toute amélioration substantielle en dessous de cette limite physique nécessite des raccourcis au niveau du traitement des données.
Analyse des gains annoncés par GenDB‑V
Le papier présentant GenDB‑V affirme des accélérations de 22× à 61× par rapport à Umbra et DuckDB, ainsi qu’une vérification formelle du système. En mode « plain‑array », les gains tombent à un facteur d’environ 3, ce qui reste plausible dans les marges d’optimisation classiques. En revanche, les gains extrêmes proviennent d’une pré‑computation massive : chaque requête dispose d’une structure auxiliaire construite à la charge, par exemple un index trié sur s_acctbal en ordre décroissant pour la requête Q2, rendant son exécution quasi instantanée (0,7 ms à SF100).
Mécanismes de sur‑optimisation exploités
GenDB‑V intègre des connaissances détaillées du générateur de données TPC‑H. Les agents codent en dur les relations suivantes :
// Position du client k
row_customer = k - 1;
// Numérotation des commandes
order_key = 32 * (i / 8) + i % 8;
// Position de la commande k
row_order = 8 * (k / 32) + k % 32 - 1;Ces formules permettent de transformer les jointures de Q18 en accès direct, réduisant le coût à une simple lecture d’index. Le code vérifie toutefois la validité de ces hypothèses ; si le test échoue, il bascule vers une implémentation générique de boucle imbriquée, très lente. Dans les expériences publiées, le générateur officiel garantit que les hypothèses tiennent, rendant le chemin de secours inexploré.
Limites pratiques et impact sur la validité du benchmark
Cette stratégie repose sur une optimisation ciblée du jeu de données de référence. Toute modification – suppression d’une ligne, insertion au milieu, ou utilisation d’un générateur alternatif – déclencherait le chemin de secours, faisant chuter les performances de plusieurs ordres de grandeur. De plus, le temps de synthèse et de construction des structures auxiliaires n’est pas comptabilisé dans les mesures publiées, ce qui biaise l’évaluation globale. Ainsi, le benchmark TPC‑H perd de sa pertinence : il mesure la capacité d’un système à exploiter des astuces spécifiques plutôt que son efficacité sur des charges de travail génériques.