pgrust — ein Klon von PostgreSQL, der in Rust geschrieben wurde und alle Regressionstests besteht

Das Projekt pgrust wurde veröffentlicht, mit einer Implementierung der PostgreSQL-Datenbank, die in der Programmiersprache Rust unter Verwendung des Transpilers c2rust und eines KI-Assistenten neu geschrieben wurde. Es wird angegeben, dass das Projekt derzeit noch nicht fĂŒr den Einsatz in Produktionsprojekten bereit ist, jedoch bereits erfolgreich alle Regressionstests von PostgreSQL bestanden hat, mit dem Speicherformat von PostgreSQL 18.3 kompatibel ist und das Data-Katalog von PostgreSQL 18.3 verwenden kann. Der Quellcode des Projekts wird unter der AGPLv3-Lizenz verbreitet, im Gegensatz zu dem ursprĂŒnglichen PostgreSQL, das unter einer permissiven Lizenz vertrieben wird, die den Lizenzen BSD und MIT Ă€hnlich ist. Eine Online-Demonstration der Möglichkeiten ist verfĂŒgbar, basierend auf einer WebAssembly-Build, sowie ein Docker-Image fĂŒr einen schnellen Start.

Als Ziel der Entwicklung wird die vollstĂ€ndige KompatibilitĂ€t mit PostgreSQL 18.3 erwĂ€hnt, sowie Experimente zur VerĂ€nderung der internen Struktur und zur Erstellung einer Version von PostgreSQL, die von architektonischen EinschrĂ€nkungen befreit ist, die aus historischen GrĂŒnden nicht ĂŒberwunden werden können. Das Projekt hat erfolgreich eine Reihe von ĂŒber 46.000 Regressionstests von PostgreSQL bestanden, ist jedoch derzeit inkompatibel mit PostgreSQL-Plugins, bietet die gewĂŒnschten Performance-Optimierungen nicht und implementiert die prozeduralen Sprachen PL/Python, PL/Perl und PL/Tcl nicht vollstĂ€ndig.

PlĂ€ne fĂŒr die Zukunft:

  • Übergang zu einer multithreaded internen Architektur.
  • Implementierung von Connection Pooling.
  • Optimierung fĂŒr Arbeitslasten, die aktiv JSON verwenden.
  • Möglichkeit, Kopien und Verzweigungen von DB-Elementen im Copy-on-Write-Modus ohne Datenkopie zu erstellen.
  • Experimente mit einer Architektur, die keinen VACUUM-Vorgang erfordert.
  • Ein System von EinschrĂ€nkungen fĂŒr SQL-Abfragen, das ĂŒbermĂ€ĂŸigen Ressourcenverbrauch bei minderwertigen Abfragen blockiert.
  • Schutz vor dem Wechsel des Optimierers auf weniger effektive AusfĂŒhrungsplĂ€ne.

Laut dem Autor des Projekts wird derzeit an der nÀchsten Version von pgrust gearbeitet, in der anstelle eines Pools von Arbeitsprozessen ein multithreaded Modell zur Verarbeitung von Verbindungen implementiert wird, sowie zusÀtzliche Optimierungen wie das Batch-Processing von Zeilen in Tabellen und das Vorabrufen von Daten. Bei Tests mit dem Tool percona-tpcc konnte die neue Version von pgrust bei der Verarbeitung von Transaktionen 50 % schneller als das Standard-P PostgreSQL sein und bei der Verarbeitung von analytischen Anfragen sogar 300-mal.

Bei der Übersetzung in Rust wurde ein hybrider Ansatz verwendet, bei dem der Code von PostgreSQL zunĂ€chst mit Hilfe des Transformators c2rust verarbeitet wurde, der eine unsichere Rust-Darstellung generiert, die ihrer Struktur nach dem ursprĂŒnglichen C-Code Ă€hnlich ist. Nach der Verarbeitung in c2rust wurden etwa 1000 Crate-Pakete erstellt, die parallel idiomatisch in Rust durch das KI-Modell Claude und das Werkzeug Conductor zur Aufgabenverteilung zwischen gleichzeitig laufenden Subagenten ĂŒbersetzt wurden.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster