pgrust : Postgres 300x plus rapide pour l'analytique

Original : Making Postgres 300x faster for analytics: batching, operator fusion, and SIMD

Pourquoi c'est important

pgrust démontre qu'une réécriture moderne de Postgres peut surpasser les moteurs analytiques de référence.

La version 0.2 de pgrust, une réécriture de PostgreSQL en Rust, affiche des performances 300x supérieures à Postgres sur ClickBench, le benchmark analytique de ClickHouse, et surpasse même ClickHouse. En OLTP, pgrust est 30 % plus rapide que Postgres.

L'équipe derrière pgrust a publié la version 0.2, entièrement axée sur la performance. Par rapport à la version précédente, le gain est de 10x. Sur ClickBench, le benchmark analytique de ClickHouse, pgrust est 300x plus rapide que PostgreSQL standard — dépassant même ClickHouse. Sur les benchmarks OLTP classiques, le gain est de 30 %.

Le moteur de requêtes constitue l'un des changements majeurs : à lui seul, il représente environ 10x du gain total de 300x. Pour illustrer le problème de base, une simple requête SQL de somme sur 500 millions de lignes prend ~20 secondes sous Postgres, contre 358 ms pour le code Rust équivalent, soit un facteur 55x.

Selon les auteurs, Postgres a été conçu dans les années 1980, à une époque où le goulot d'étranglement était l'I/O disque. Aujourd'hui, les datasets tiennent souvent en RAM, les NVMe sont des centaines de fois plus rapides que les disques durs, et les workloads analytiques sont limités par le CPU et la bande passante mémoire. Les optimisations clés de pgrust incluent le batching (traitement par lots), la fusion d'opérateurs (operator fusion) et l'utilisation des instructions SIMD, réduisant ainsi la consommation CPU et la bande passante mémoire lors du traitement des requêtes.

Source

malisper.me — Lire l'original →