Das MangoDB-Projekt entwickelt eine Implementierung des MongoDB DBMS-Protokolls auf Basis von PostgreSQL

Die erste öffentliche Version des MangoDB-Projekts ist verfügbar und bietet eine Ebene mit einer Implementierung des dokumentorientierten DBMS-Protokolls MongoDB, das auf dem PostgreSQL-DBMS läuft. Ziel des Projekts ist es, die Möglichkeit zur Migration von Anwendungen mithilfe des MongoDB-DBMS zu PostgreSQL und einem vollständig offenen Software-Stack bereitzustellen. Der Code ist in Go geschrieben und wird unter der Apache 2.0-Lizenz vertrieben.

Das Programm fungiert als Proxy, der Aufrufe an MangoDB in SQL-Abfragen an PostgreSQL übersetzt und dabei PostgreSQL als eigentlichen Speicher verwendet. Das Projekt ist mit Treibern für MongoDB kompatibel, 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 MongoDB-DBMS 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 Anforderung zur Bereitstellung unter der SSPL-Lizenz enthält nicht nur der Anwendungscode selbst, sondern auch die Quellcodes aller an der Bereitstellung von Cloud-Diensten beteiligten Komponenten.

Denken Sie daran, dass MongoDB eine Nische zwischen schnellen und skalierbaren Systemen, die Daten im Schlüssel-/Wertformat verarbeiten, und relationalen DBMS einnimmt, die funktional und praktisch bei der Generierung von Abfragen sind. MongoDB unterstützt das Speichern von Dokumenten in einem JSON-ähnlichen Format, verfügt über eine ziemlich flexible Sprache zum Generieren von Abfragen, kann Indizes für verschiedene gespeicherte Attribute erstellen, ermöglicht die effiziente Speicherung großer Binärobjekte, unterstützt die Protokollierung von Vorgängen zum Ändern und Hinzufügen von Daten zur Datenbank arbeitet nach dem Paradigma Map/Reduce, unterstützt die Replikation und den Aufbau fehlertoleranter Konfigurationen.

Source: opennet.ru

Kommentar hinzufügen