MangoDB yra modernizuotas ir dabar keičiamas į FerretDB

Neseniais dienomis buvo paskelbta žinia apie projekto pradžią FerretDB (anksčiau MangoDB), kuri leidžia pakeisti MongoDB į dokumentus orientuotą DBVS į PostgreSQL neatliekant jokių programos kodo pakeitimų.

FerretDB yra įdiegtas kaip tarpinis serveris, kuris iškvietimus į MongoDB paverčia SQL užklausomis į PostgreSQL, todėl galite naudoti PostgreSQL kaip tikrąją saugyklą.

FerretDB (anksčiau MangoDB) buvo įkurta tam, kad taptų de facto atvirojo kodo MongoDB pakaitalu. FerretDB yra atvirojo kodo tarpinis serveris, konvertuojantis MongoDB laidinio protokolo užklausas į SQL, naudodamas PostgreSQL kaip duomenų bazės variklį.

Migracijos poreikis gali atsirasti dėl MongoDB perėjimo prie nelaisvos SSPL licencijos, kuri yra pagrįsta AGPLv3 licencija, bet nėra atvirojo kodo, nes joje yra diskriminacinis reikalavimas pagal SSPL licenciją teikti ne tik taikomąją programą. paties kodo, bet ir visų komponentų, dalyvaujančių teikiant debesies paslaugą, šaltinio kodus.

Tikslinė FerretDB auditorija yra vartotojai, kurie nesinaudoja pažangiomis MongoDB funkcijomis savo programose, bet nori naudoti visiškai atvirą programinės įrangos krūvą.

Dabartiniame kūrimo etape FerretDB ji vis dar palaiko tik dalį MongoDB funkcijų kurie dažniausiai naudojami tipinėse programose. Ateityje jie planuoja pasiekti visišką MongoDB tvarkyklių palaikymą ir suteikti galimybę naudoti FerretDB kaip skaidrų MongoDB pakaitalą.

Reikėtų prisiminti tai „MongoDB“ užima nišą tarp greitų ir keičiamo dydžio sistemų kurios veikia su duomenimis rakto / vertės formatu ir reliacine DBVS, funkcionaliomis ir patogiomis generuojant užklausas.

Daugumai MongoDB naudotojų nereikia daug pažangių funkcijų, kurias siūlo MongoDB; tačiau jiems reikia lengvai naudojamo atvirojo kodo duomenų bazės sprendimo. Tai pripažinęs, FerretDB yra čia, kad užpildytų šią spragą.

MongoDB palaiko dokumentų saugojimą JSON formatu, turi gana lanksčią užklausų generavimo kalbą, gali kurti indeksus įvairiems saugomiems atributams, užtikrina efektyvią dvejetainę didelių objektų saugyklą, palaiko operacijų registravimą, kad būtų galima keisti ir pridėti duomenis į duomenų bazę, jis gali veikti pagal Map/Reduce paradigmą, palaiko replikaciją ir gedimams atsparių konfigūracijų kūrimą.

FerretDB 0.1.0 leidime pažymima, kad visiškai pertvarkytas PostgreSQL duomenų gavimo būdas. Anksčiau kiekvienai gaunamai MongoDB užklausai buvo generuojama SQL į PostgreSQL užklausa, naudojant funkcijas, skirtas dirbti su JSON formatu ir filtruoti rezultatus PostgreSQL pusėje.

Dėl skirtumų PostgreSQL ir MongoDB json funkcijų semantikoje, buvo neatitikimas elgesys lyginant ir tvarkant skirtingus tipus. Norint išspręsti šią problemą, dabar iš PostgreSQL išgaunamas perteklinių duomenų pavyzdys ir rezultato filtravimas atliekamas FerretDB pusėje, todėl daugeliu atvejų buvo galima pakartoti MongoDB elgesį.

Padidinto suderinamumo kaina buvo bauda už našumą, kurią būsimose laidose tikimasi kompensuoti selektyviu filtravimu FerretDB pusėje tik užklausoms, kurių elgesys skiriasi.

Pavyzdžiui, užklausa "db.collection.find({_id: 'some-id-value'})" gali būti visiškai apdorota naudojant PostgreSQL. Pagrindinis projekto tikslas šiame kūrimo etape yra pasiekti suderinamumą su MongoDB, o našumas vis dar yra nukeltas į antrą planą.

Iš naujos versijos funkcinių pakeitimų palaikomi visi bitų operatoriai, palyginimo operatorius „$e“, taip pat operatoriai „$elemMatch“ ir „$bitsAllClear“.

Pagaliau norintiems sužinoti apie tai daugiau, jie turėtų žinoti, kad kodas parašytas Go ir platinamas pagal Apache 2.0 licenciją ir galite patikrinti jo kodą šioje nuorodoje.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.