MangoDB je posodobljen in se zdaj spremeni v FerretDB

Pred kratkimS dni je bila objavljena novica o začetku projekta FerretDB (prej MangoDB), ki vam omogoča zamenjavo dokumentno usmerjenega DBMS MongoDB s PostgreSQL, ne da bi spremenili kodo vaše aplikacije.

FerretDB je implementiran kot proxy strežnik, ki prevaja klice MongoDB v poizvedbe SQL v PostgreSQL, kar vam omogoča uporabo PostgreSQL kot dejanskega prostora za shranjevanje.

FerretDB (prej MangoDB) je bil ustanovljen, da bi postal de facto odprtokodna zamenjava za MongoDB. FerretDB je odprtokodni proxy, ki pretvarja poizvedbe žičnih protokolov MongoDB v SQL z uporabo PostgreSQL kot mehanizma baze podatkov.

Potreba po selitvi se lahko pojavi zaradi prehoda MongoDB na neprosto licenco SSPL, ki temelji na licenci AGPLv3, vendar ni odprtokodna, saj vsebuje diskriminatorno zahtevo, da se pod licenco SSPL zagotovi ne samo aplikacija same kode, ampak tudi izvorne kode vseh komponent, ki sodelujejo pri zagotavljanju storitve v oblaku.

Ciljna publika za FerretDB so uporabniki, ki ne uporabljajo naprednih funkcij MongoDB v svojih aplikacijah, vendar želijo uporabljati popolnoma odprt programski sklad.

V trenutni fazi razvoja FerretDB še vedno podpira le del funkcij MongoDB ki se najpogosteje uporabljajo v tipičnih aplikacijah. V prihodnosti nameravajo doseči popolno podporo gonilnikom za MongoDB in zagotoviti možnost uporabe FerretDB kot pregledne zamenjave za MongoDB.

To je treba zapomniti MongoDB zavzema nišo med hitrimi in razširljivimi sistemi ki delujejo na podatkih v obliki ključ/vrednost, in relacijski DBMS, funkcionalni in priročni pri generiranju poizvedb.

Večina uporabnikov MongoDB ne potrebuje veliko naprednih funkcij, ki jih ponuja MongoDB; vendar potrebujejo rešitev odprtokodne baze podatkov, ki je enostavna za uporabo. Ker se tega zaveda, je FerretDB tukaj, da zapolni to vrzel.

MongoDB podpira shranjevanje dokumentov v formatu, podobni JSON, ima dokaj prilagodljiv jezik za generiranje poizvedb, lahko ustvari indekse za različne shranjene atribute, zagotavlja učinkovito binarno shranjevanje velikih predmetov, podpira beleženje operacij za spreminjanje in dodajanje podatkov na bazo podatkov, lahko deluje v skladu s paradigmo Map/Reduce, podpira replikacijo in gradnjo konfiguracij, odpornih na napake.

V izdaji FerretDB 0.1.0 je navedeno, da popolnoma preoblikovan način pridobivanja podatkov PostgreSQL. Prej je bila za vsako dohodno zahtevo MongoDB ustvarjena poizvedba SQL za PostgreSQL z uporabo funkcij za delo z formatom JSON in filtriranjem rezultatov na strani PostgreSQL.

Zaradi razlik v semantiki funkcij PostgreSQL in MongoDB json, prišlo je do neskladja v obnašanju pri primerjavi in ​​naročanju različnih vrst. Da bi rešili to težavo, je vzorec odvečnih podatkov zdaj izvlečen iz PostgreSQL in filtriranje rezultata se izvede na strani FerretDB, kar je omogočilo ponovitev obnašanja MongoDB v večini situacij.

Cena povečane združljivosti je bila zmanjšana zmogljivost, za katerega se pričakuje, da bo v prihodnjih izdajah izravnano s selektivnim filtriranjem na strani FerretDB samo poizvedb, za katere obstaja vedenjska razhajanja.

Na primer, poizvedbo "db.collection.find({_id: 'some-id-value'})" je mogoče v celoti obdelati v PostgreSQL. Glavni cilj projekta v tej fazi razvoja je doseči združljivost z MongoDB, zmogljivost pa je še vedno odmaknjena v ozadje.

Od funkcionalnih sprememb v novi različici je podpora za vse bitne operatorje, primerjalni operater "$e" ter operaterja "$elemMatch" in "$bitsAllClear".

Končno za tiste, ki jih zanima več o tem, morajo vedeti, da je koda napisana v Go in se distribuira pod licenco Apache 2.0 in njegovo kodo lahko preverite na naslednji povezavi.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.