MangoDB es modernitza i ara canvia a ser FerretDB

fa pocs dies es va donar a conèixer la notícia del llançament del projecte FerretDB, (anteriorment MangoDB), que permet reemplaçar el DBMS orientat a documents de MongoDB amb PostgreSQL sense fer canvis al codi de l'aplicació.

FerretDB s'implementa com un servidor intermediari que tradueix les trucades a MongoDB en consultes SQL a PostgreSQL, cosa que li permet utilitzar PostgreSQL com a emmagatzematge real.

FerretDB (anteriorment MangoDB) es va fundar per esdevenir el substitut de codi obert de facto de MongoDB. FerretDB és un proxy de codi obert que converteix les consultes del protocol de connexió de MongoDB a SQL, utilitzant PostgreSQL com a motor de base de dades.

La necessitat de migració pot sorgir degut a la transició de MongoDB a una llicència SSPL no lliure, que es basa en la llicència AGPLv3, però no és de codi obert, ja que conté un requisit discriminatori per proporcionar sota la llicència SSPL no només l'aplicació del codi en si, sinó també els codis font de tots els components involucrats en la prestació del servei al núvol.

El públic objectiu de FerretDB són els usuaris que no utilitzen les funcions avançades de MongoDB en les aplicacions, però volen utilitzar una pila de programari completament oberta.

A l'etapa actual de desenvolupament, FerretDB encara admet només una part de les característiques de MongoDB que es fan servir amb més freqüència en les aplicacions típiques. En el futur, planegen aconseguir una compatibilitat total amb els controladors per a MongoDB i brindar la capacitat d'usar FerretDB com un reemplaçament transparent per a MongoDB.

Cal recordar que MongoDB ocupa un nínxol entre els sistemes ràpids i escalables que operen sobre dades en format clau/valor, i els DBMS relacionals, funcionals i convenients a la generació de consultes.

La majoria dels usuaris de MongoDB no necessiten gaires funcions avançades que ofereix MongoDB; però, necessiten una solució de base de dades de codi obert fàcil dusar. Reconeixent això, FerretDB és aquí per omplir aquest buit.

MongoDB admet l'emmagatzematge de documents en un format semblant a JSON, té un llenguatge força flexible per generar consultes, pot crear índexs per a diversos atributs emmagatzemats, proporciona emmagatzematge eficient d'objectes binaris grans, admet el registre d'operacions per canviar i afegir dades a la base de dades, podeu treballar d'acord amb el paradigma Map/Reduce, admet la replicació i la construcció de configuracions tolerants a falles.

Al llançament de FerretDB 0.1.0 es destaca que s'ha redissenyat completament la manera com es recuperen les dades de PostgreSQL. Anteriorment, per a cada sol·licitud entrant de MongoDB, es generava una consulta SQL a PostgreSQL, fent servir funcions per treballar amb el format JSON i filtrant els resultats del costat de PostgreSQL.

A causa de les diferències a la semàntica de les funcions json de PostgreSQL i MongoDB, hi va haver una discrepància en el comportament en comparar i ordenar diferents tipus. Per resoldre aquest problema, ara s'extreu una mostra de dades redundants de PostgreSQL i el filtratge del resultat es realitza al costat de FerretDB, fet que va fer possible repetir el comportament de MongoDB en la majoria de les situacions.

El preu d'una compatibilitat més gran va ser una penalització en el rendiment, que en versions futures s'espera que es compensi amb el filtratge selectiu al costat de FerretDB de només consultes per a les quals hi ha una divergència de comportament.

Per exemple, la consulta «db.collection.find({_id: 'some-id-value'})» es pot processar completament a PostgreSQL. L'objectiu principal del projecte en aquesta etapa de desenvolupament és assolir la compatibilitat amb MongoDB, i el rendiment encara està relegat a un segon pla.

Dels canvis funcionals en la nova versió, hi ha suport per a tots els operadors de bits, l'operador de comparació $e, així com els operadors $elemMatch i $bitsAllClear.

Finalment per als que estiguin interessats en poder conèixer més a l'respecte, han de saber que el codi està escrit a Go i es distribueix sota la llicència Apache 2.0 i podeu consultar el vostre codi al següent enllaç.


Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.