Depuis 2022, Databricks SQL (DBSQL) Serverless a offert un gain de performance de 5x sur les charges de travail réelles des clients, transformant un tableau de bord de 100 secondes en un tableau de bord de 20 secondes. Cette accélération provient d'améliorations continues du moteur, toutes livrées automatiquement et sans optimisation des performances.

Aujourd'hui, nous en ajoutons encore plus. Avec le lancement de Predictive Query Execution et Photon Vectorized Shuffle, les requêtes sont jusqu'à 25 % plus rapides en plus des gains de 5x existants, ramenant ce tableau de bord de 20 secondes à environ 15 secondes. Ces nouvelles améliorations du moteur sont déployées automatiquement sur tous les entrepôts DBSQL Serverless, sans coût supplémentaire.

Lors de son lancement dans Apache Spark, Adaptive Query Execution (AQE) a représenté un grand pas en avant. Il permettait aux requêtes de se replanifier en fonction des tailles de données réelles pendant l'exécution de la requête. Cependant, il présentait une limitation majeure : il ne pouvait agir qu'après la fin d'une étape d'exécution de requête. Ce délai signifiait que des problèmes tels que le déséquilibre des données (data skew) ou le dépassement excessif de la mémoire (spilling) n'étaient souvent pas détectés avant qu'il ne soit trop tard.
Predictive Query Execution (PQE) change cela. Il introduit une boucle de rétroaction continue à l'intérieur du moteur de requête :

Le résultat ? Des requêtes plus rapides, moins de surprises et des performances plus prévisibles, en particulier pour les pipelines complexes et les charges de travail mixtes.
Photon est un moteur natif C++ qui traite les données par lots colonnaires, vectorisé pour exploiter les CPU modernes et exécuter les requêtes SQL plusieurs fois plus rapidement. Les opérations de mélange (shuffle), qui restructurent de grands ensembles de données entre les étapes, restent parmi les plus lourdes dans le traitement des requêtes.
Les opérations de mélange sont historiquement les plus difficiles à optimiser car elles impliquent de nombreux accès aléatoires à la mémoire. Il est également rarement possible de réduire le nombre d'accès aléatoires sans réécrire les données. L'intuition clé que nous avons eue était qu'au lieu de réduire le nombre d'accès aléatoires, nous pouvions réduire la distance entre chaque accès aléatoire en mémoire.
Cela nous a conduits à réécrire le mélange de Photon à partir de zéro avec un mélange basé sur les colonnes pour une meilleure efficacité du cache et de la mémoire.
Le résultat est un composant de mélange qui déplace les données efficacement, exécute moins d'instructions, et prend en compte le cache. Avec le mélange nouvellement optimisé, nous constatons un débit 1,5x plus élevé dans les charges de travail liées au CPU, comme les jointures volumineuses.
Cette mise à niveau est en cours de déploiement sur tous les entrepôts DBSQL Serverless, aucune action n'est requise.
Vous n'avez pas encore essayé DBSQL Serverless ? C'est le moment idéal. Serverless est le moyen le plus simple d'exécuter des analyses sur le Lakehouse :
Créez simplement un entrepôt DBSQL Serverless et commencez à interroger, sans aucune optimisation requise. Si vous n'utilisez pas encore Databricks SQL, lisez-en plus sur l'activation des entrepôts SQL serverless.
(Cet article de blog a été traduit à l'aide d'outils basés sur l'intelligence artificielle) Article original
