MangoDB er moderniseret og skifter nu til FerretDB

nyligs dage blev nyheden om lanceringen af ​​projektet annonceret FerretDB, (tidligere MangoDB), som giver dig mulighed for at erstatte MongoDBs dokumentorienterede DBMS med PostgreSQL uden at foretage ændringer i din applikationskode.

FerretDB er implementeret som en proxyserver, der oversætter opkald til MongoDB til SQL-forespørgsler til PostgreSQL, hvilket giver dig mulighed for at bruge PostgreSQL som det faktiske lager.

FerretDB (tidligere MangoDB) blev grundlagt for at blive den de facto open source-erstatning for MongoDB. FerretDB er en open source-proxy, der konverterer MongoDB-trådprotokolforespørgsler til SQL ved at bruge PostgreSQL som databasemotor.

Behovet for migrering kan opstå på grund af overgangen af ​​MongoDB til en ikke-fri SSPL-licens, som er baseret på AGPLv3-licensen, men ikke er open source, da den indeholder et diskriminerende krav om at levere under SSPL-licensen ikke kun applikationen af selve koden, men også kildekoderne for alle de komponenter, der er involveret i at levere cloud-tjenesten.

Målgruppen for FerretDB er brugere, der ikke bruger de avancerede funktioner i MongoDB i deres applikationer, men ønsker at bruge en helt åben softwarestak.

I det nuværende udviklingstrin, FerretDB det understøtter stadig kun en del af MongoDB-funktionerne som oftest bruges i typiske applikationer. I fremtiden planlægger de at opnå fuld driversupport til MongoDB og give mulighed for at bruge FerretDB som en gennemsigtig erstatning for MongoDB.

Det skal huskes MongoDB indtager en niche blandt hurtige og skalerbare systemer der opererer på data i nøgle/værdi-format og relationel DBMS, funktionel og praktisk til at generere forespørgsler.

De fleste MongoDB-brugere har ikke brug for mange af de avancerede funktioner, som MongoDB tilbyder; dog har de brug for en brugervenlig open source-databaseløsning. I erkendelse af dette er FerretDB her for at udfylde dette hul.

MongoDB understøtter lagring af dokumenter i et JSON-lignende format, har et ret fleksibelt sprog til generering af forespørgsler, kan oprette indekser for forskellige lagrede attributter, giver effektiv binær lagring af store objekter, understøtter logning af operationer for at ændre og tilføje data til databasen, kan den arbejde i henhold til Map/Reduce-paradigmet, den understøtter replikering og konstruktion af fejltolerante konfigurationer.

I udgivelsen af ​​FerretDB 0.1.0 bemærkes det, at fuldstændig redesignet måden PostgreSQL-data hentes på. Tidligere blev der for hver indkommende MongoDB-anmodning genereret en SQL til PostgreSQL-forespørgsel, ved at bruge funktioner til at arbejde med JSON-formatet og filtrere resultaterne på PostgreSQL-siden.

På grund af forskellene i semantikken af ​​PostgreSQL og MongoDB json-funktioner, der var en uoverensstemmelse i adfærd ved sammenligning og bestilling af forskellige typer. For at løse dette problem udvindes nu en prøve af redundante data fra PostgreSQL, og filtreringen af ​​resultatet udføres på FerretDB-siden, hvilket gjorde det muligt at gentage MongoDBs adfærd i de fleste situationer.

Prisen for øget kompatibilitet var en præstationsstraf, som i fremtidige udgivelser forventes at blive opvejet af selektiv filtrering på FerretDB-siden af ​​kun forespørgsler, for hvilke der er en adfærdsmæssig divergens.

For eksempel kan forespørgslen "db.collection.find({_id: 'some-id-value'})" behandles fuldt ud i PostgreSQL. Hovedmålet med projektet på dette udviklingstrin er at opnå kompatibilitet med MongoDB, og ydeevnen er stadig henvist til baggrunden.

Af de funktionelle ændringer i den nye version er der understøttelse af alle bitvise operatorer, "$e" sammenligningsoperatoren, samt "$elemMatch" og "$bitsAllClear" operatorerne.

Endelig for dem der er interesserede i at vide mere om det, bør de vide, at koden er skrevet i Go og distribueres under Apache 2.0-licensen og du kan tjekke dens kode i følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.