- Un article sur l’avenir de SQLite publié dans le Vol 15 de PVLDB
- SQLite a été conçu pour l’OLTP, mais les besoins en OLAP augmentent récemment en raison de l’edge computing et de la data science
- DuckDB, qui affiche de solides performances en OLAP, est surnommé « SQLite for Analytics »
- Le document compare les performances de SQLite et de DuckDB, puis résume les améliorations apportées au traitement des données analytiques, permettant d’être 4,2x plus rapide sur le SSB
- Contenu du benchmark
- Pour les transactions d’écriture, SQLite est 10x à 500x plus rapide que DuckDB
- Dans le benchmark analytique (Star Schema Benchmark, SSB), DuckDB est 30 à 50x plus rapide que SQLite
- Des améliorations continueront d’être apportées, mais comme leurs objectifs initiaux diffèrent, il est difficile d’atteindre les mêmes performances
- Avec une autre approche, SQLite3/HE atteint des performances 100x supérieures sur le SSB sans dégrader les performances OLTP
- Ces tentatives permettront d’améliorer les performances du moteur et d’ajouter des optimisations
2 commentaires
Cet article contient plusieurs points intéressants, mais j’ai parcouru brièvement le texte original parce que je voulais comprendre plus concrètement comment ils avaient amélioré le traitement OLAP et, par conséquent, les benchmarks associés.
En conclusion, cette amélioration consistait à introduire un filtre de Bloom afin d’améliorer le traitement des
joindans les requêtes utilisées pour l’analyse de données.Après avoir profilé les requêtes utilisées dans les benchmarks OLAP de SQLite, ils ont constaté que la structure de données B-tree était explorée même pour des parties qui n’apparaissaient absolument pas dans le résultat final. Le point principal de cette amélioration a donc été d’ajouter un filtre de Bloom, une structure de données probabiliste qui permet de savoir avec certitude qu’un élément donné n’existe pas, afin d’écarter et de traiter à l’avance les parties qui ne seront pas incluses dans le résultat final.
Quelques articles de présentation sur le filtre de Bloom à consulter au passage.
Et il paraît qu’il existe aussi désormais quelque chose appelé Xor Filter.
Notes sur l’article SQLite DuckDB
DuckDB - open source de base de données OLAP embarquée