První stabilní vydání FerretDB, implementace MongoDB založená na PostgreSQL DBMS

Byla zveřejněna verze projektu FerretDB 1.0, která umožňuje nahradit dokumentově orientovaný DBMS MongoDB PostgreSQL bez provádění změn v kódu 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ě. Verze 1.0 je označena jako první stabilní vydání připravené k obecnému použití. Kód je napsán v Go a distribuován pod licencí Apache 2.0.

Hlavní cílovou skupinou pro FerretDB jsou uživatelé, kteří ve svých aplikacích nepoužívají pokročilé funkce MongoDB, ale chtějí používat zcela otevřený softwarový stack. V současné fázi vývoje podporuje FerretDB podmnožinu funkcí MongoDB, které se nejčastěji používají v typických aplikacích. Potřeba implementace FerretDB může vyvstat v souvislosti s přechodem MongoDB na nesvobodnou licenci SSPL, která je založena na licenci AGPLv3, ale není otevřená, protože obsahuje diskriminační požadavek dodávat v rámci licence SSPL nejen samotný aplikační kód, ale také zdrojové kódy všech komponent zapojených do poskytování cloudových služeb.

MongoDB zaujímá mezeru mezi rychlými a škálovatelnými systémy, které pracují na datech klíč/hodnota, a relačními DBMS, které jsou funkční a snadno se dotazují. MongoDB podporuje ukládání dokumentů ve formátu JSON, má poměrně flexibilní jazyk pro generování dotazů, umí vytvářet indexy pro různé uložené atributy, efektivně zajišťuje ukládání velkých binárních objektů, podporuje protokolování operací pro změnu a přidávání dat do databáze, umí pracovat v souladu s paradigmatem Map/Reduce, podporuje replikaci a vytváření konfigurací odolných vůči chybám.

Mezi změny ve FerretDB 1.0:

  • Implementované příkazy createIndexes a dropIndexes pro vytvoření a odstranění jednoho nebo více indexů do kolekce.
  • Příkaz getMore byl implementován pro zobrazení nové části výsledku získaného prováděním příkazů, které vracejí kurzor, jako je najít a agregovat.
  • Přidána podpora pro operátor agregace $sum pro výpočet součtu skupinových hodnot.
  • Přidána podpora operátorů $limit a $skip pro omezení počtu a přeskakování dokumentů při agregaci.
  • Přidána podpora operátoru $count pro počítání dokumentů při agregaci.
  • Přidána podpora pro operátor $unwind pro analýzu polí pole v příchozích dokumentech a vytvoření seznamu se samostatným dokumentem pro každý prvek pole.
  • Přidána částečná podpora pro příkazy collStats, dbStats a dataSize pro získání statistik kolekce a databáze a velikosti dat.

Zdroj: opennet.ru

Přidat komentář