pgrust – ein PostgreSQL-Klon in Rust, der alle Regressionstests besteht

Das Projekt pgrust wurde veröffentlicht, das eine PostgreSQL-Datenbank-Management-System neu in Rust unter Verwendung des c2rust-Translators und eines KI-Assistenten implementiert. Es wird angegeben, dass das Projekt noch nicht fĂŒr den Einsatz in Produktionsprojekten bereit ist, aber bereits erfolgreich alle Regressionstests von PostgreSQL besteht, mit dem Datenformat von PostgreSQL 18.3 kompatibel ist und das Datenverzeichnis von PostgreSQL 18.3 nutzen kann. Der Code des Projekts steht unter der Lizenz AGPLv3, im Gegensatz zur originalen PostgreSQL, die unter der permissiven PostgreSQL-Lizenz vertrieben wird, die den Lizenzen von BSD und MIT Ă€hnelt. Eine Online-Demonstration der Möglichkeiten ist verfĂŒgbar, die auf einer WebAssembly-Build basiert, sowie ein Docker-Image fĂŒr einen schnellen Einsatz.

Das Ziel der Entwicklung ist, vollstĂ€ndige KompatibilitĂ€t mit PostgreSQL 18.3 zu erreichen und Experimente zur VerĂ€nderung der internen Struktur durchzufĂŒhren, um eine Version von PostgreSQL zu erstellen, die frei von architektonischen EinschrĂ€nkungen ist, die aus historischen GrĂŒnden nicht beseitigt werden können. Das Projekt durchlĂ€uft erfolgreich einen Satz von ĂŒber 46.000 Regressionstests von PostgreSQL, ist jedoch derzeit nicht mit PostgreSQL-Erweiterungen kompatibel, bietet nicht die gewĂŒnschten Leistungsoptimierungen und implementiert die prozeduralen Sprachen PL/Python, PL/Perl und PL/Tcl nicht vollstĂ€ndig.

ZukunftsplÀne:

  • Umstellung auf eine mehrfĂ€dige interne Architektur.
  • Implementierung von Connection Pooling.
  • Optimierung fĂŒr Arbeitsprozesse, die intensiv JSON nutzen.
  • Möglichkeit, Kopien und Abzweigungen von Datenbankelementen im Copy-on-Write-Modus zu erstellen, ohne Daten zu kopieren.
  • Experimente mit einer Architektur, die keine VACUUM-Operation erfordert.
  • Ein SQL-AbfragebeschrĂ€nkungssystem, das ĂŒbermĂ€ĂŸigen Ressourcenverbrauch bei der AusfĂŒhrung von minderwertigen Abfragen blockiert.
  • Schutz vor der Umschaltung des Optimierers auf weniger effiziente AusfĂŒhrungsplĂ€ne.

Laut dem Projektleiter wird derzeit an der nĂ€chsten Version von pgrust gearbeitet, die anstelle eines Pool-Workflows ein multithreaded Verbindungsmodell implementiert. DarĂŒber hinaus werden zusĂ€tzliche Optimierungen eingesetzt, wie das Batch-Processing von Zeilen in Tabellen und das vorzeitige Laden von Daten. Bei Tests mit dem Percona-TPCC-Tool hat sich die neue Version von pgrust als 50 % schneller erwiesen als das Standard-PostgreSQL bei der Verarbeitung von Transaktionen, und bei der AusfĂŒhrung von Analyseabfragen sogar 300-mal schneller.

Beim Transfer nach Rust wurde ein hybrider Ansatz gewĂ€hlt, bei dem der PostgreSQL-Code zunĂ€chst mit dem Translator c2rust bearbeitet wurde, der eine unsafe-Darstellung von Rust generiert, die in ihrer Struktur dem ursprĂŒnglichen Code in C Ă€hnelt. Nach der Bearbeitung in c2rust wurden etwa 1000 Crate-Pakete erstellt, die parallel in idiomatisches Rust mit Hilfe des KI-Modells Claude und des Conductor-Tools ĂŒbersetzt wurden, um die Aufgaben zwischen gleichzeitig laufenden Subagenten zu verteilen.

Quelle: opennet.ru

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster