A MangoDB modernizálódott, és most FerretDB-re változik

nemrégA napokban jelentették be a hírt a projekt indulásáról FerretDB (korábban MangoDB), amely lehetővé teszi a MongoDB dokumentum-orientált DBMS-ének lecserélését PostgreSQL-re anélkül, hogy bármilyen változtatást kellene végrehajtania az alkalmazás kódjában.

A FerretDB proxyszerverként van megvalósítva, amely a MongoDB-hívásokat SQL-lekérdezésekké fordítja PostgreSQL-be, lehetővé téve a PostgreSQL-t tényleges tárolóként.

A FerretDB-t (korábban MangoDB) azért hozták létre, hogy a MongoDB de facto nyílt forráskódú helyettesítője legyen. A FerretDB egy nyílt forráskódú proxy, amely a MongoDB vezetékes protokoll lekérdezéseit SQL-be ​​konvertálja, a PostgreSQL adatbázis-motort használva.

A migráció szükségessége a MongoDB nem ingyenes SSPL licencre való átállása miatt merülhet fel, amely AGPLv3 licencen alapul, de nem nyílt forráskódú, mivel diszkriminatív követelményt tartalmaz, hogy az SSPL licenc alatt ne csak az alkalmazást biztosítsák. magának a kódnak, hanem a felhőszolgáltatás nyújtásában részt vevő összes összetevő forráskódjának is.

A FerretDB célközönsége azok a felhasználók, akik nem használják a MongoDB speciális szolgáltatásait alkalmazásaikban, de teljesen nyitott szoftververmet szeretnének használni.

A fejlesztés jelenlegi szakaszában a FerretDB továbbra is csak a MongoDB szolgáltatásainak egy részét támogatja amelyeket leggyakrabban tipikus alkalmazásokban használnak. A jövőben azt tervezik, hogy elérik a MongoDB teljes illesztőprogram-támogatását, és lehetővé teszik a FerretDB használatát a MongoDB átlátszó helyettesítőjeként.

Nem szabad elfelejteni, hogy A MongoDB egy rést foglal el a gyors és méretezhető rendszerek között amelyek kulcs/érték formátumú adatokkal és relációs DBMS-sel működnek, funkcionálisak és kényelmesek a lekérdezések generálásához.

A legtöbb MongoDB-felhasználónak nincs szüksége a MongoDB által kínált fejlett szolgáltatások közül sokra; azonban szükségük van egy könnyen használható nyílt forráskódú adatbázis-megoldásra. Ezt felismerve a FerretDB itt van, hogy betöltse ezt a hiányt.

MongoDB támogatja a dokumentumok JSON-szerű formátumban történő tárolását, meglehetősen rugalmas nyelve van a lekérdezések generálásához, képes indexeket létrehozni a különféle tárolt attribútumokhoz, hatékony bináris nagy objektumtárolást biztosít, támogatja a műveletek naplózását az adatok módosításához és hozzáadásához az adatbázishoz, a Map/Reduce paradigma szerint működhet, támogatja a replikációt és a hibatűrő konfigurációk felépítését.

A FerretDB 0.1.0 kiadásában meg van jegyezve, hogy teljesen újratervezték a PostgreSQL adatok lekérésének módját. Korábban minden bejövő MongoDB-kéréshez egy SQL–PostgreSQL-lekérdezést hoztak létre, amely függvényeket használt a JSON formátummal való együttműködéshez, és az eredményeket a PostgreSQL oldalon szűrte.

A különbségek miatt a PostgreSQL és a MongoDB json függvények szemantikájában, eltérés volt viselkedésében a különböző típusok összehasonlítása és rendezése során. A probléma megoldása érdekében a PostgreSQL-ből kivonnak egy mintát a redundáns adatokból, és az eredmény szűrése a FerretDB oldalon történik, ami lehetővé tette a MongoDB viselkedésének megismétlését a legtöbb helyzetben.

A fokozott kompatibilitás ára teljesítménybüntetés volt, amit a jövőbeni kiadásokban várhatóan csak az olyan lekérdezések FerretDB oldalán történő szelektív szűréssel ellensúlyoznak, amelyeknél viselkedésbeli eltérés mutatkozik.

Például a "db.collection.find({_id: 'some-id-value'})" lekérdezés teljes mértékben feldolgozható a PostgreSQL-ben. A projekt fő célja a fejlesztés ezen szakaszában a MongoDB-vel való kompatibilitás elérése, és a teljesítmény még mindig háttérbe szorul.

Az új verzió funkcionális változtatásai közül az összes bitenkénti operátor, a "$e" összehasonlító operátor, valamint a "$elemMatch" és a "$bitsAllClear" operátorok támogatása.

Végül azok számára, akik többet szeretnének tudni róla, tudniuk kell, hogy a kód Go nyelven íródott, és az Apache 2.0 licence alatt terjesztik és kódját a következő linken ellenőrizheti.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.