MangoDB: eine Open-Source-Alternative zu MongoDB

MongoDB ist ein NoSQL-Datenbanksystemdokumentenorientiert, lebensverändernd für viele Entwickler, da sie Anwendungen schneller als relationale Datenbanken erstellen können. MongoDB hat jedoch seine Open-Source-Wurzeln aufgegeben und die Lizenz in SSPL geändert. Dadurch ist es für viele kommerzielle und Open-Source-Projekte unbrauchbar.

Zuvor wurde MangoDB vorgestellt, was eine perfekte Lösung ist für diejenigen, die eine MongoDB-Entwicklungserfahrung suchen, da MangoDB eine Schicht mit der dokumentorientierten MongoDB-Protokollimplementierung bietet, die auf PostgreSQL läuft.

Das Projekt zielt darauf ab, die Möglichkeit zu bieten, MongoDB-Anwendungen zu PostgreSQL zu migrieren und einen vollständig offenen Software-Stack. Der Code ist in der Sprache Go geschrieben und wird unter der Apache 2.0-Lizenz vertrieben.

Denken Sie daran, dass MongoDB ein dokumentenorientiertes Datenbankverwaltungssystem ist Es kann auf beliebig viele Rechner verteilt werden und benötigt kein vordefiniertes Datenschema. Dadurch können strukturierte Objekte im BSON-Format (binäres JSON) ohne Standardschema verarbeitet werden.

Mit anderen Worten, Schlüssel können jederzeit "on the fly" hinzugefügt werden, ohne die Basis neu zu konfigurieren. Bei den Daten handelt es sich um Dokumente, die wiederum in Sammlungen abgelegt werden, eine Sammlung mit beliebig vielen Dokumenten. Sammlungen sind wie Tabellen und Dokumente sind wie Datensätze in relationalen Datenbanken.

Die serverseitige öffentliche Lizenz (SSPL) ist eine proprietäre Softwarelizenz, die von MongoDB Inc. entwickelt wurde. Laut MongoDB basiert die SSPL auf der AGPL3-Lizenz, mit der Hinzufügung eines neuen Abschnitts, der "klar und explizit die Bedingungen für den Vertrieb des lizenzierten Programms als Dienst eines Drittanbieters festlegt" und verlangt, dass der gesamte Quellcode verfügbar ist, wenn die Software wird der Öffentlichkeit als Teil eines Dienstes zur Verfügung gestellt.

Dieser Wandel wurde im Oktober 2018 eingeführt, woraufhin die Debian-, Red Hat Enterprise Linux- und Fedora-Distributionen MongoDB aufgegeben haben, unter Berufung auf Bedenken bezüglich SSPL. Amazon hat einen unterstützten, aber proprietären Dienst namens DocumentDB eingeführt, und es schien, dass SSPL nicht in der Lage war, den Cloud-Umsatz für MongoDB zu steigern. Die meisten MongoDB-Benutzer benötigen nicht die vielen erweiterten Funktionen, die MongoDB bietet, aber sie benötigen eine Open-Source-Datenbanklösung und hier kommt MangoDB ins Spiel.

Kern unserer Lösung ist ein zustandsloser Proxy, der MongoDB-Protokollabfragen in SQL umwandelt und PostgreSQL als Datenbank-Engine verwendet. Es wird mit MongoDB-Treibern kompatibel sein und sollte in vielen Fällen als direkter Ersatz für MongoDB dienen.

MangoDB soll die De-facto-Open-Source-Alternative zu MongoDB werden. MangoDB ist ein Open-Source-Proxy, der kabelgebundene MongoDB-Protokollabfragen in SQL umwandelt und PostgreSQL als Datenbank-Engine verwendet. MangoDB wird mit MongoDB-Treibern kompatibel sein und in vielen Fällen als direkter Ersatz für MongoDB dienen.

das Programm arbeitet als Proxy, der Aufrufe an MangoDB in SQL-Abfragen an PostgreSQL übersetzt, PostgreSQL als echten Speicher verwenden. Das Projekt unterstützt Treiber für MongoDB, befindet sich jedoch noch im Prototypenstadium und unterstützt nicht die erweiterten Funktionen des MongoDB-Protokolls, obwohl es bereits für die Übersetzung einfacher Anwendungen geeignet ist.

Die Notwendigkeit, die Verwendung des DBMS MongoDB zu vermeiden, kann sich aus der Umstellung des Projekts auf eine unfreie SSPL-Lizenz ergeben, die auf der AGPLv3-Lizenz basiert, aber nicht offen ist, da sie eine diskriminierende Verpflichtung zur Lieferung unter SSPL enthält nicht nur den Code der Anwendung selbst, sondern auch die Quellcodes aller Komponenten, die an der Bereitstellung von Cloud-Diensten beteiligt sind.

Schließlich wenn Sie mehr darüber wissen möchten Über MangoDB können Sie die Details überprüfen im folgenden Link.


Als bevorzugte Quelle in Google hinzufügen