En bref / Points clés
- Un nouveau projet appelé pgrust a entièrement réécrit Postgres en Rust, et il réussit chaque test de régression.
- Mais la véritable histoire n'est pas seulement la vitesse, c'est la façon dont l'IA a rendu cet exploit 'impossible' une réalité.
Au-delà d'un Fork : Un Clone Parfait ?
Une réécriture complète de Postgres en Rust, baptisé pgrust, est sorti, et c'est bien plus qu'un simple exercice académique. Ce projet audacieux a réalisé l'exploit monumental de réussir les plus de 46 000 requêtes de régression officielles de Postgres – une référence que peu de bases de données "compatibles", voire aucune, osent réellement revendiquer. Ce n'est pas seulement un clin d'œil à la compatibilité ; c'est une déclaration.
De manière cruciale, pgrust n'est pas un fork du codebase C existant, ni une extension boulonnée sur l'original. Il représente une réimplémentation complète, depuis la base, méticuleusement conçue pour une compatibilité comportementale à 100% avec Postgres 18.3. L'objectif n'était pas de modifier l'ancien moteur, mais de le remplacer entièrement par Rust, en préservant chaque nuance du contrat externe.
Le résultat est un serveur de base de données qui est, de l'extérieur, absolument indiscernable de son prédécesseur basé sur C. Il utilise le protocole de communication exact, permettant une intégration transparente avec les clients `psql` standards. Plus étonnant encore, pgrust peut même démarrer directement à partir d'un répertoire de données Postgres 18.3 existant, démontrant un niveau de compatibilité disque qui brouille la frontière entre un nouveau moteur et un clone pur et simple. Ce n'est pas seulement une imitation superficielle ; c'est une congruence profonde et fondamentale.
Le Véritable Objectif : Threads plutôt que Processus
Postgres, malgré toute sa stabilité, repose sur un modèle lourd de processus par connexion. Chaque client exige son propre processus backend, offrant une isolation robuste mais entraînant une surcharge mémoire significative. Cette conception complique également le partage d'état pour les opérations parallèles, nécessitant souvent un pool de connexions.
pgrust, cependant, prend une direction différente dans sa version expérimentale non encore publiée. Il vise à remplacer cela par une architecture de thread par connexion. Ce changement promet une consommation de mémoire plus faible par connexion et simplifie le partage d'informations entre les différents composants de la base de données, un avantage crucial pour les charges de travail modernes.
Pourtant, ce pivot architectural introduit un compromis crucial. L'isolation des processus de Postgres offre un filet de sécurité crucial : un crash dans une connexion ne fait généralement pas tomber tout le serveur. Avec les threads, un seul bug de mémoire ou une extension non sécurisée pourrait potentiellement déstabiliser l'ensemble du processus, supprimant ainsi certains de ces garde-fous inhérents.
Cette ré-architecture fondamentale étaye les affirmations de performance les plus audacieuses de pgrust. Les développeurs rapportent une augmentation de 50% non vérifiée pour les charges de travail transactionnelles et une amélioration stupéfiante de 300x pour les requêtes analytiques dans cette version non publiée. Ces chiffres spectaculaires restent spéculatifs, car le code supportant ces benchmarks n'est pas encore publiquement disponible pour une vérification indépendante.
L'Arme Secrète : Développement piloté par l'IA
La réécriture monumentale de Postgres en pgrust n'était pas seulement un témoignage des capacités de Rust ; c'était une démonstration audacieuse du développement piloté par l'IA. Michael Malis et Jason Seibel ont largement utilisé des agents de codage IA, leur permettant de traduire le codebase C d'un million de lignes de Postgres avec une vitesse et une faisabilité étonnantes. Cette tâche monumentale, auparavant impensable pour une petite équipe, est devenue réalisable grâce à la traduction automatisée, modifiant fondamentalement l'économie d'une telle entreprise.
Ceci révèle la véritable expérience en jeu : non seulement si Rust peut rendre Postgres plus rapide, mais si l'IA peut rendre la réécriture d'infrastructures héritées suffisamment abordable pour repenser l'architecture de base. Des décennies de code C accumulé, autrefois considéré comme un monolithe intouchable, sont devenues une cible réalisable pour un changement architectural profond. La version publiée de pgrust reflète largement la structure originale de Postgres, mais le modèle thread-per-connection non publié montre la véritable ambition de changements de conception fondamentaux.
Ce changement de paradigme redéfinit fondamentalement l'analyse coût-bénéfice pour la modernisation d'autres projets logiciels à grande échelle, vieux de plusieurs décennies. Des systèmes comme Linux, Apache, ou même des applications d'entreprise plus anciennes, auparavant jugés trop coûteux ou risqués à réécrire, entrent désormais dans le domaine du possible. Les agents d'IA réduisent considérablement le fardeau de la traduction initiale, libérant les ingénieurs humains pour se concentrer sur des refontes architecturales innovantes, comme détaillé plus en détail sur malisper/pgrust: Postgres rewritten in Rust, now passing 100% of the Postgres regression tests - GitHub.
Hype vs. Réalité : Le verdict sur pgrust
Sans surprise, le verdict de la communauté d'ingénieurs sur pgrust est fortement divisé. Alors que de nombreux développeurs expriment un immense respect pour une réalisation telle que la réussite de plus de 46 000 requêtes de régression officielles de Postgres, un scepticisme sain demeure. Des benchmarks non vérifiés, revendiquant une performance transactionnelle 50 % supérieure et des charges de travail analytiques 300 fois plus rapides à partir d'une version non publiée, alimentent cette prudence.
Enjoying this? Get one like it in your inbox each morning.
one email a day · unsubscribe in two clicks · no third-party tracking
Ne vous y trompez pas : pgrust est une expérience révolutionnaire, pas un remplacement prêt pour la production. Des domaines clés comme l'important écosystème d'extensions restent inachevés, et le durcissement critique requis pour la récupération après crash et la stabilité à long terme n'a pas encore été réalisé. Le déploiement de ceci dans un environnement réel serait irresponsable.
En fin de compte, la contribution la plus profonde de pgrust pourrait ne pas être un simple benchmark ou même un remplacement direct de Postgres. Au lieu de cela, sa véritable valeur réside dans la liberté sans précédent qu'il crée. Permis par le développement piloté par l'IA, ce projet démontre la faisabilité de tester de nouvelles architectures de base de données radicales, telles qu'un modèle thread-per-connection, sans le coût et la complexité prohibitifs de forker l'ensemble du projet Postgres.
Foire aux questions
Qu'est-ce que pgrust ?
pgrust est une réécriture complète, à partir de zéro, de la base de données Postgres dans le langage de programmation Rust. Il vise à être un remplacement direct (drop-in replacement) qui est comportementalement identique, ayant passé les plus de 46 000 tests de régression officiels de Postgres.
pgrust est-il plus rapide que Postgres ?
La version actuelle publiée de pgrust n'est pas axée sur la performance. Cependant, une version de développement non publiée revendique des accélérations significatives — jusqu'à 50 % sur les charges de travail transactionnelles et 300x sur les charges de travail analytiques — en passant à un modèle thread-per-connection.
Puis-je utiliser pgrust en production ?
Non. Les développeurs affirment que pgrust n'est pas prêt pour la production. Bien qu'il passe les tests de régression, il n'a pas subi les années de tests en conditions réelles nécessaires à la confiance en production, en particulier dans des domaines comme la récupération après crash et la réplication.
Comment l'IA a-t-elle été utilisée pour construire pgrust ?
Les développeurs ont utilisé de manière extensive des agents de codage alimentés par l'IA pour accélérer la tâche massive de traduction de près d'un million de lignes de code C en Rust. Cela a rendu réalisable une expérience autrement prohibitivement coûteuse.
