pgrust — un clone de PostgreSQL Ă©crit en Rust, rĂ©ussissant tous les tests de rĂ©gression

Un projet pgrust a Ă©tĂ© publiĂ©, mettant en Ɠuvre une base de donnĂ©es PostgreSQL réécrite en Rust, utilisant le traducteur c2rust et un assistant AI. Il est dĂ©clarĂ© que le projet n'est pas encore prĂȘt pour une utilisation dans des projets de production, mais il passe dĂ©jĂ  avec succĂšs tous les tests de rĂ©gression de PostgreSQL, est compatible avec le format de stockage des donnĂ©es PostgreSQL 18.3 et peut utiliser le catalogue de donnĂ©es de PostgreSQL 18.3. Le code du projet est distribuĂ© sous la licence AGPLv3, contrairement Ă  l'original PostgreSQL, qui est fourni sous une licence permissive proche des licences BSD et MIT. Une dĂ©monstration en ligne des capacitĂ©s est disponible, basĂ©e sur une version WebAssembly, ainsi qu'une image docker pour un dĂ©marrage rapide.

L'objectif du dĂ©veloppement est d'atteindre une compatibilitĂ© totale avec PostgreSQL 18.3, ainsi que de mener des expĂ©riences sur la modification de l'architecture interne et de crĂ©er une version de PostgreSQL dĂ©barrassĂ©e des contraintes architecturales historiques. Le projet rĂ©ussit Ă  passer plus de 46 000 tests de rĂ©gression de PostgreSQL, mais il n'est pas encore compatible avec les extensions de PostgreSQL, ne fournit pas les optimisations de performance souhaitĂ©es et ne met pas entiĂšrement en Ɠuvre les langages procĂ©duraux PL/Python, PL/Perl et PL/Tcl.

Plans futurs :

  • Conversion Ă  une architecture interne multithread.
  • Mise en Ɠuvre du pooling de connexions.
  • Optimisation pour les workflows utilisant activement JSON.
  • PossibilitĂ© de crĂ©er des copies et des branches des Ă©lĂ©ments de la base de donnĂ©es en mode Copy-on-Write sans copier les donnĂ©es.
  • ExpĂ©rimentations avec une architecture ne nĂ©cessitant pas l'opĂ©ration VACUUM.
  • Un systĂšme de contraintes pour les requĂȘtes SQL permettant de bloquer une consommation excessive de ressources lors de l'exĂ©cution de requĂȘtes de mauvaise qualitĂ©.
  • Protection contre le changement de l'optimiseur vers des plans d'exĂ©cution moins efficaces.

Selon l'auteur du projet, des travaux sont actuellement en cours sur la prochaine version de pgrust, dans laquelle un modĂšle de traitement des connexions multithread remplace le pool de processus, ainsi que des optimisations supplĂ©mentaires, telles que le traitement par lots des lignes dans les tables et le chargement anticipĂ© des donnĂ©es. Lors des tests avec l'outil percona-tpcc pour le traitement des transactions, la nouvelle version de pgrust s'est rĂ©vĂ©lĂ©e 50% plus rapide que le PostgreSQL standard et 300 fois plus rapide pour le traitement des requĂȘtes analytiques.

Lors de la traduction en Rust, une approche hybride a Ă©tĂ© adoptĂ©e, oĂč le code PostgreSQL a d'abord Ă©tĂ© traitĂ© Ă  l'aide du traducteur c2rust, gĂ©nĂ©rant une reprĂ©sentation unsafe en Rust, proche de la structure du code C d'origine. AprĂšs le traitement dans c2rust, environ 1000 packages crate ont Ă©tĂ© créés, qui ont Ă©tĂ© parallĂšlement traduits en Rust idiomatique Ă  l'aide du modĂšle d'IA Claude et de l'outil Conductor pour rĂ©partir les tĂąches entre des sous-agents s'exĂ©cutant simultanĂ©ment.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster