MangoDB je modernizován a nyní se mění na FerretDB

Nedávnove dnech byla oznámena zpráva o zahájení projektu FerretDB, (dříve MangoDB), který vám umožňuje nahradit dokumentově orientovaný DBMS MongoDB PostgreSQL bez provádění jakýchkoli změn v kódu vaší aplikace.

FerretDB je implementován jako proxy server, který převádí volání MongoDB do SQL dotazů do PostgreSQL, což vám umožňuje používat PostgreSQL jako skutečné úložiště.

FerretDB (dříve MangoDB) byl založen, aby se stal de facto open source náhradou za MongoDB. FerretDB je open source proxy, která převádí dotazy drátového protokolu MongoDB na SQL pomocí PostgreSQL jako databázového stroje.

Potřeba migrace může vyvstat z důvodu přechodu MongoDB na nesvobodnou licenci SSPL, která je založena na licenci AGPLv3, ale není open source, neboť obsahuje diskriminační požadavek poskytovat pod licencí SSPL nejen aplikaci kódu samotného, ​​ale také zdrojových kódů všech komponent, které se podílejí na poskytování cloudové služby.

Cílovou skupinou pro FerretDB jsou uživatelé, kteří nepoužívají pokročilé funkce MongoDB ve svých aplikacích, ale chtějí používat zcela otevřený softwarový balík.

V současné fázi vývoje, FerretDB stále podporuje pouze část funkcí MongoDB nejčastěji používané v typických aplikacích. V budoucnu plánují dosáhnout plné podpory ovladačů pro MongoDB a poskytnout možnost používat FerretDB jako transparentní náhradu za MongoDB.

Je třeba si to pamatovat MongoDB zaujímá mezeru mezi rychlými a škálovatelnými systémy které pracují s daty ve formátu klíč/hodnota a relační DBMS, funkční a pohodlné při generování dotazů.

Většina uživatelů MongoDB nepotřebuje mnoho pokročilých funkcí, které MongoDB nabízí; potřebují však snadno použitelné řešení databáze s otevřeným zdrojovým kódem. FerretDB si to uvědomuje a je tu, aby tuto mezeru zaplnil.

MongoDB podporuje ukládání dokumentů ve formátu podobném JSON, má poměrně flexibilní jazyk pro generování dotazů, dokáže vytvářet indexy pro různé uložené atributy, poskytuje efektivní binární úložiště velkých objektů, podpora protokolování operací pro změnu a přidání dat do databáze, může pracovat podle paradigmatu Map/Reduce, podporuje replikaci a konstrukci konfigurací odolných proti chybám.

Ve vydání FerretDB 0.1.0 je uvedeno, že kompletně přepracován způsob získávání dat PostgreSQL. Dříve byl pro každý příchozí požadavek MongoDB generován dotaz SQL na PostgreSQL, který používal funkce pro práci s formátem JSON a filtroval výsledky na straně PostgreSQL.

Kvůli rozdílům v sémantice funkcí PostgreSQL a MongoDB json, došlo k rozporu v chování při porovnávání a objednávání různých typů. K vyřešení tohoto problému je nyní z PostgreSQL extrahován vzorek redundantních dat a filtrování výsledku se provádí na straně FerretDB, což umožnilo opakovat chování MongoDB ve většině situací.

Cena za zvýšenou kompatibilitu byla výkonová penalizace, očekává se, že v budoucích verzích bude kompenzováno selektivním filtrováním na straně FerretDB pouze dotazů, u kterých existuje odchylka v chování.

Například dotaz "db.collection.find({_id: 'some-id-value'})" může být plně zpracován v PostgreSQL. Hlavním cílem projektu v této fázi vývoje je dosažení kompatibility s MongoDB a výkon je stále odsouván do pozadí.

Z funkčních změn je v nové verzi podpora všech bitových operátorů, porovnávací operátor „$e“ a také operátory „$elemMatch“ a „$bitsAllClear“.

Konečně pro ty, kteří se o tom chtějí dozvědět více, měli by vědět, že kód je napsán v Go a je distribuován pod licencí Apache 2.0 a jeho kód můžete zkontrolovat na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.