Die Veröffentlichung des FerretDB 0.7-Projekts wurde bekannt gegeben, das es ermöglicht, die dokumentenorientierte DBMS MongoDB durch PostgreSQL zu ersetzen, ohne Änderungen am Anwendungscode vorzunehmen. FerretDB fungiert als Proxy-Server, der Anfragen an MongoDB in SQL-Abfragen an PostgreSQL übersetzt, wodurch PostgreSQL als tatsächlicher Speicher genutzt werden kann. Der Code ist in der Programmiersprache Go geschrieben und wird unter der Lizenz Apache 2.0 vertrieben.
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.
Die Änderungen in FerretDB 0.7 umfassen:
- Eine Diagnosetechnische Befehlszeile msg_explain wurde implementiert, die für die Tigris-Plattform erforderlich ist.
- Die Unterstützung für Filter (Option "filter") wurde zur Liste der Sammlungen (listCollections) hinzugefügt.
- Die Verwendung des Zeichens "-" in Datenbanknamen ist erlaubt.
- Die Anzahl der unterstützten Parameter im Befehl find wurde erhöht.
- Im Wire-Paket mit der Implementierung des "wire"-Protokolls (Protokoll für die Interaktion mit MongoDB) wurde die Möglichkeit zur Überprüfung von Dokumenten hinzugefügt. Die minimal unterstützte Version des Wire-Protokolls wurde auf 13 gesenkt, was MongoDB 5.0 entspricht.
Quelle: opennet.ru
