MangoDB je modernizovaný a teraz sa mení na FerretDB

Nedávnodní bola oznámená správa o spustení projektu FerretDB, (predtým MangoDB), ktorý vám umožňuje nahradiť DBMS orientovanú na dokumenty MongoDB PostgreSQL bez vykonania akýchkoľvek zmien v kóde vašej aplikácie.

FerretDB je implementovaný ako proxy server, ktorý prekladá volania MongoDB na SQL dotazy do PostgreSQL, čo vám umožňuje používať PostgreSQL ako skutočné úložisko.

FerretDB (predtým MangoDB) bol založený, aby sa stal de facto open source náhradou za MongoDB. FerretDB je proxy server s otvoreným zdrojom, ktorý konvertuje dopyty drôtového protokolu MongoDB na SQL pomocou PostgreSQL ako databázového nástroja.

Potreba migrácie môže vzniknúť z dôvodu prechodu MongoDB na neslobodnú licenciu SSPL, ktorá je založená na licencii AGPLv3, ale nie je open source, nakoľko obsahuje diskriminačnú požiadavku poskytovať v rámci licencie SSPL nielen aplikáciu samotného kódu, ale aj zdrojových kódov všetkých komponentov podieľajúcich sa na poskytovaní cloudovej služby.

Cieľovou skupinou pre FerretDB sú používatelia, ktorí nepoužívajú pokročilé funkcie MongoDB vo svojich aplikáciách, ale chcú používať úplne otvorený softvérový balík.

V súčasnej fáze vývoja, FerretDB stále podporuje iba časť funkcií MongoDB ktoré sa najčastejšie používajú v typických aplikáciách. V budúcnosti plánujú dosiahnuť plnú podporu ovládačov pre MongoDB a poskytnúť možnosť používať FerretDB ako transparentnú náhradu za MongoDB.

Malo by sa to pamätať MongoDB zaberá medzeru medzi rýchlymi a škálovateľnými systémami ktoré pracujú s údajmi vo formáte kľúč/hodnota a relačné DBMS, funkčné a pohodlné pri generovaní dotazov.

Väčšina používateľov MongoDB nepotrebuje veľa pokročilých funkcií, ktoré MongoDB ponúka; potrebujú však ľahko použiteľné databázové riešenie s otvoreným zdrojovým kódom. Uvedomujúc si to, FerretDB je tu, aby zaplnil túto medzeru.

MongoDB podporuje ukladanie dokumentov vo formáte podobnom JSON, má pomerne flexibilný jazyk na generovanie dotazov, dokáže vytvárať indexy pre rôzne uložené atribúty, poskytuje efektívne binárne ukladanie veľkých objektov, podpora protokolovania operácií na zmenu a pridanie údajov do databázy, môže pracovať podľa paradigmy Map/Reduce, podporuje replikáciu a konštrukciu konfigurácií odolných voči chybám.

Vo vydaní FerretDB 0.1.0 sa uvádza, že úplne prepracovaný spôsob získavania údajov PostgreSQL. Predtým sa pre každú prichádzajúcu požiadavku MongoDB generoval dotaz SQL na PostgreSQL, pričom sa používali funkcie na prácu s formátom JSON a filtrovanie výsledkov na strane PostgreSQL.

Kvôli rozdielom v sémantike funkcií PostgreSQL a MongoDB json, došlo k nezrovnalosti v správaní pri porovnávaní a objednávaní rôznych typov. Na vyriešenie tohto problému je teraz z PostgreSQL extrahovaná vzorka nadbytočných údajov a filtrovanie výsledku sa vykonáva na strane FerretDB, čo umožnilo zopakovať správanie MongoDB vo väčšine situácií.

Cena za zvýšenú kompatibilitu bola výkonnostná penalizácia, očakáva sa, že v budúcich vydaniach bude kompenzované selektívnym filtrovaním na strane FerretDB iba dopytov, pri ktorých existuje odchýlka v správaní.

Napríklad dotaz "db.collection.find({_id: 'nejaká-id-hodnota'})" môže byť plne spracovaný v PostgreSQL. Hlavným cieľom projektu v tejto fáze vývoja je dosiahnuť kompatibilitu s MongoDB a výkon je stále odsúvaný do úzadia.

Z funkčných zmien v novej verzii je podpora všetkých bitových operátorov, porovnávacieho operátora „$e“, ako aj operátorov „$elemMatch“ a „$bitsAllClear“.

Konečne pre tých, ktorí majú záujem dozvedieť sa viac, mali by vedieť, že kód je napísaný v Go a je distribuovaný pod licenciou Apache 2.0 a jeho kód môžete skontrolovať na nasledujúcom odkaze.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.