MangoDB er modernisert og endres nå til FerretDB

nyligs dager ble nyheten om lanseringen av prosjektet kunngjort FerretDB, (tidligere MangoDB), som lar deg erstatte MongoDBs dokumentorienterte DBMS med PostgreSQL uten å gjøre noen endringer i applikasjonskoden.

FerretDB er implementert som en proxy-server som oversetter kall til MongoDB til SQL-spørringer til PostgreSQL, slik at du kan bruke PostgreSQL som den faktiske lagringen.

FerretDB (tidligere MangoDB) ble grunnlagt for å bli den de facto åpen kildekode-erstatning for MongoDB. FerretDB er en åpen kildekode-proxy som konverterer MongoDB-trådprotokollspørringer til SQL, ved å bruke PostgreSQL som databasemotor.

Behovet for migrering kan oppstå på grunn av overgangen av MongoDB til en ikke-fri SSPL-lisens, som er basert på AGPLv3-lisensen, men ikke er åpen kildekode, da den inneholder et diskriminerende krav om å gi under SSPL-lisensen ikke bare applikasjonen av selve koden, men også kildekodene til alle komponentene som er involvert i å levere skytjenesten.

Målgruppen for FerretDB er brukere som ikke bruker de avanserte funksjonene til MongoDB i sine applikasjoner, men ønsker å bruke en helt åpen programvarestabel.

I det nåværende utviklingsstadiet, FerretDB den støtter fortsatt bare deler av MongoDB-funksjonene som oftest brukes i typiske applikasjoner. I fremtiden planlegger de å oppnå full førerstøtte for MongoDB og gi muligheten til å bruke FerretDB som en transparent erstatning for MongoDB.

Det skal huskes MongoDB opptar en nisje blant raske og skalerbare systemer som opererer på data i nøkkel/verdi-format, og relasjons-DBMS, funksjonelle og praktiske for å generere spørringer.

De fleste MongoDB-brukere trenger ikke mange av de avanserte funksjonene som MongoDB tilbyr; imidlertid trenger de en enkel å bruke åpen kildekode-databaseløsning. FerretDB erkjenner dette, og er her for å fylle det gapet.

MongoDB støtter lagring av dokumenter i et JSON-lignende format, har et ganske fleksibelt språk for å generere spørringer, kan lage indekser for ulike lagrede attributter, gir effektiv binær lagring av store objekter, støtte logging av operasjoner for å endre og legge til data til databasen kan den fungere i henhold til Map/Reduce-paradigmet, den støtter replikering og konstruksjon av feiltolerante konfigurasjoner.

I utgivelsen av FerretDB 0.1.0 bemerkes det at fullstendig redesignet måten PostgreSQL-data hentes på. Tidligere, for hver innkommende MongoDB-forespørsel, ble det generert en SQL til PostgreSQL-spørring, ved å bruke funksjoner for å jobbe med JSON-formatet og filtrere resultatene på PostgreSQL-siden.

På grunn av forskjellene i semantikken til PostgreSQL og MongoDB json-funksjoner, det var et avvik i oppførsel når man sammenligner og bestiller ulike typer. For å løse dette problemet trekkes det nå ut et utvalg overflødige data fra PostgreSQL og filtreringen av resultatet gjøres på FerretDB-siden, noe som gjorde det mulig å gjenta oppførselen til MongoDB i de fleste situasjoner.

Prisen for økt kompatibilitet var en ytelsesstraff, som i fremtidige utgivelser forventes å bli oppveid av selektiv filtrering på FerretDB-siden av kun spørringer som det er adferdsforskjeller for.

For eksempel kan søket "db.collection.find({_id: 'some-id-value'})" behandles fullstendig i PostgreSQL. Hovedmålet med prosjektet på dette utviklingsstadiet er å oppnå kompatibilitet med MongoDB, og ytelsen er fortsatt henvist til bakgrunnen.

Av funksjonsendringene i den nye versjonen er det støtte for alle bitvise operatorer, sammenligningsoperatoren «$e», samt operatorene «$elemMatch» og «$bitsAllClear».

Endelig for de som er interessert i å vite mer om det, bør de vite at koden er skrevet i Go og distribueres under Apache 2.0-lisensen og du kan sjekke koden i den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.