FerretDB 0.3 veröffentlicht, Implementierung von MongoDB auf der Basis des DBMS PostgreSQL

Die Veröffentlichung des Projekts FerretDB 0.3, das einen Austausch der dokumentenorientierten DBMS MongoDB gegen PostgreSQL ohne Änderungen am Anwendungscode ermöglicht, wurde veröffentlicht. FerretDB wird als Proxy-Server implementiert, der Aufrufe an MongoDB in SQL-Abfragen an PostgreSQL ĂŒbersetzt, was die Nutzung von PostgreSQL als tatsĂ€chlichen Speicherort ermöglicht. Der Code ist in der Programmiersprache Go geschrieben und steht unter der Lizenz Apache 2.0.

Ein Migrationsbedarf kann aufgrund des Wechsels von MongoDB zu der nicht-freien SSPL-Lizenz entstehen, die auf der AGPLv3-Lizenz basiert, jedoch nicht offen ist, da sie diskriminierende Anforderungen an die Bereitstellung der AGPLv3-Lizenz nicht nur fĂŒr den Anwendungscode, sondern auch fĂŒr die Quelltexte aller an der Bereitstellung des Cloud-Dienstes beteiligten Komponenten enthĂ€lt.

Die Hauptzielgruppe von FerretDB sind Benutzer, die in ihren Anwendungen nicht die erweiterten Funktionen von MongoDB nutzen, aber einen vollstĂ€ndig offenen Softwarestack verwenden möchten. In der aktuellen Entwicklungsstufe unterstĂŒtzt FerretDB bisher nur einige der Funktionen von MongoDB, die in typischen Anwendungen am hĂ€ufigsten verwendet werden. ZukĂŒnftig wird angestrebt, vollstĂ€ndige KompatibilitĂ€t mit den Treibern fĂŒr MongoDB zu erreichen und FerretDB als transparente Alternative zu MongoDB anzubieten.

MongoDB nimmt eine Nische zwischen schnellen und skalierbaren Systemen ein, die Daten im SchlĂŒssel/Wert-Format verarbeiten, und relationalen DBMS, die funktional und benutzerfreundlich bei der Abfrageerstellung sind. MongoDB unterstĂŒtzt die Speicherung von Dokumenten im JSON-Ă€hnlichen Format, verfĂŒgt ĂŒber eine ausreichend flexible Sprache zur Abfrageerstellung, kann Indizes fĂŒr verschiedene gespeicherte Attribute erstellen, gewĂ€hrleistet effizient die Speicherung großer binĂ€rer Objekte, unterstĂŒtzt das Protokollieren von Operationen zur Änderung und ErgĂ€nzung von Daten in der Datenbank, kann nach dem Map/Reduce-Paradigma arbeiten, unterstĂŒtzt Replikation und den Aufbau von ausfallsicheren Konfigurationen.

In der Veröffentlichung von FerretDB 0.3 wurde der Befehl findAndModify implementiert, der ein Dokument Ă€ndert, aber dessen ursprĂŒngliche Version zurĂŒckgibt. Es wurden Aktualisierungsoperatoren fĂŒr Felder - $inc und $set - implementiert. Die UnterstĂŒtzung fĂŒr die Sortierung von skalaren Datentypen wurde hinzugefĂŒgt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4