Primer llançament estable de FerretDB, implementació de MongoDB basada en DBMS PostgreSQL

S'ha publicat el llançament del projecte FerretDB 1.0, que permet substituir el SGBD MongoDB orientat a documents per PostgreSQL sense fer canvis al codi de l'aplicació. FerretDB s'implementa com a servidor intermediari que tradueix les trucades a MongoDB en consultes SQL a PostgreSQL, cosa que us permet utilitzar PostgreSQL com a emmagatzematge real. La versió 1.0 està marcada com la primera versió estable preparada per a ús general. El codi està escrit a Go i es distribueix sota la llicència Apache 2.0.

El principal públic objectiu de FerretDB són els usuaris que no utilitzen les funcions avançades de MongoDB a les seves aplicacions, però volen utilitzar una pila de programari completament oberta. En la seva fase actual de desenvolupament, FerretDB admet un subconjunt de les funcions de MongoDB més utilitzades en aplicacions típiques. La necessitat d'implementar FerretDB pot sorgir en relació amb la transició de MongoDB a una llicència SSPL no lliure, que es basa en la llicència AGPLv3, però no està oberta, ja que conté un requisit discriminatori per subministrar sota la llicència SSPL no només la el propi codi de l'aplicació, però també els codis font de tots els components implicats en la prestació de serveis al núvol.

MongoDB ocupa un nínxol entre sistemes ràpids i escalables que operen amb dades clau/valor i SGBD relacionals que són funcionals i fàcils de consultar. MongoDB admet l'emmagatzematge de documents en un format semblant a JSON, té un llenguatge bastant flexible per generar consultes, pot crear índexs per a diversos atributs emmagatzemats, proporciona de manera eficient l'emmagatzematge d'objectes binaris grans, admet el registre d'operacions per canviar i afegir dades a la base de dades, pot treballar d'acord amb el paradigma Map/Reduce, admet la replicació i la creació de configuracions tolerants a errors.

Entre els canvis a FerretDB 1.0:

  • S'han implementat les ordres createIndexes i dropIndexes per crear i deixar anar un o més índexs a una col·lecció.
  • L'ordre getMore s'ha implementat per mostrar una nova part del resultat obtingut de l'execució d'ordres que retornen un cursor, com ara trobar i agregar.
  • S'ha afegit suport per a l'operador d'agregació $sum per calcular la suma dels valors del grup.
  • S'ha afegit suport per als operadors $limit i $skip per limitar el nombre i saltar documents en agregar.
  • S'ha afegit suport per a l'operador $count per comptar documents quan s'agrega.
  • S'ha afegit suport per a l'operador $unwind per analitzar camps de matriu en documents entrants i formar una llista amb un document separat per a cada element de matriu.
  • S'ha afegit suport parcial per a les ordres collStats, dbStats i dataSize per obtenir estadístiques de recopilació i bases de dades i mida de dades.

Font: opennet.ru

Afegeix comentari