sql >> Databáze >  >> NoSQL >> MongoDB

Přehled WiredTiger Storage Engine pro MongoDB

Každý databázový systém má strukturovanou komponentu, která je zodpovědná za udržování způsobu ukládání a obsluhy dat v paměti i na disku. To je často označováno jako úložiště. Při hodnocení architektury operačních databází vývojáři častěji zohledňují faktory z první ruky, jako je datové modelování, snížená latence, zlepšená propustnost operací, konzistence dat, snadná škálovatelnost a minimální odolnost proti chybám. Navzdory tomu je potřeba mít podrobné a pokročilé znalosti o základním úložišti, aby bylo možné jej lépe vyladit, aby efektivně plnil zvýrazněné faktory.

Jednoduchý cyklus aplikace do db systému je znázorněn níže...

Příklad běžné aplikační architektury

WiredTiger Storage Engine

MongoDB podporuje hlavně 3 úložné stroje, jejichž výkon se liší v závislosti na konkrétním pracovním zatížení. Úložné moduly jsou:

  1. WiredTiger Storage Engine
  2. In-Memory Storage Engine
  3. MMAPv1 Storage Engine

Úložný modul WiredTiger má obě konfigurace enginu založeného na B-stromu a enginu založeného na stromovém uspořádání log Structured Merge.

Motor založený na B-stromu

Jedná se o jeden ze starověkých skladovacích motorů, ze kterých jsou odvozena další sofistikovaná nastavení. Jedná se o samovyvažující stromovou datovou strukturu, která zajišťuje třídění dat a umožňuje logaritmické vyhledávání, sekvenční přístup, vkládání a mazání. Jde o úložiště založené na řádcích, takže každý řádek je považován za jeden záznam v databázi

Přednosti B-stromu Storage Engine

  • Vysoká propustnost a nízká latence čtení. B-Stromy mají tendenci se zvětšovat do šířky a mělce, takže se projde jen velmi málo uzlů.
  • Udržuje klíče v seřazeném pořadí pro sekvenční procházení a indexy jsou vyváženy pomocí rekurzivního algoritmu.
  • Vnitřní úložné uzly jsou vždy zaplněny alespoň z poloviny, což obecně snižuje plýtvání.
  • Snadná manipulace s velkým počtem vložení a odstranění během krátké doby.
  • Hierarchické indexování se používá s cílem snížit čtení disku.
  • Urychluje vkládání a mazání pomocí částečně plných bloků.

Omezení úložiště B-Strom

  • Nízký výkon zápisu kvůli nutnosti zajistit dobře uspořádanou datovou strukturu s náhodnými zápisy. Náhodné zápisy jsou dražší než sekvenční zápisy do úložiště.
  • Potrestání za připravenost k úpravě a zápisu celého bloku, a to i v případě menší aktualizace řádku v bloku.

Strukturovaný slučovací stromový modul protokolu

Kvůli špatnému zápisovému výkonu B-Tree Based Engine museli vývojáři přijít na způsob, jak si poradit s většími datovými sadami do DBMS. Proto byl vytvořen modul Log Structured Merge Tree Based Engine (LSM Tree), aby zlepšil výkon indexovaného přístupu k souborům s velkým objemem zápisu po delší dobu. V tomto případě jsou náhodné zápisy v první fázi kaskádové paměti převedeny na sekvenční zápisy v první komponentě založené na disku.

Výhody LSM Tree Storage Engine

  • Schopnost provádět rychlé sekvenční zápisy zlepšuje rychlé zpracování velkých rychle rostoucích dat.
  • Dobře se hodí pro vrstvené úložiště, takže organizacím poskytuje lepší výběr z hlediska nákladů a výkonu. Flash-based SSD poskytují v tomto případě skvělý výkon.
  • Lepší komprese a efektivita úložiště, čímž se ušetří úložný prostor a rozšíří se téměř plné úložiště
  • Data jsou vždy okamžitě k dispozici pro dotaz.
  • Vkládání je velmi rychlé.

Omezení úložiště B-Strom

Spotřebujte více paměti ve srovnání s B-Stromem během operací čtení kvůli čtení a zesílení prostoru. Některé přístupy, jako jsou Bloomovy filtry, však tento efekt v praxi zmírnily tak, že počet souborů ke kontrole během bodového dotazu je snížen.

Technologie WiredTiger byla navržena tak, aby využívala výhod B-Stromu i LSM, díky čemuž je sofistikovaná a nejlepší úložiště pro MongoDB. IT je ve skutečnosti výchozím úložištěm MongoDB.

Somenines Staňte se MongoDB DBA – Uvedení MongoDB do produkce Zjistěte, co potřebujete vědět, abyste mohli nasadit, monitorovat, spravovat a škálovat MongoDBDdownload zdarma

Architektura WiredTiger Storage Engine

Jak již bylo zmíněno výše, zahrnuje koncept dvou základních úložných motorů, kterými jsou motory B-Tree a LSM Tree, takže se jedná o úložný stroj pro řízení souběžnosti více verzí (MVCC). Přednosti obou kombinací umožňují systému vidět snímek databáze v době, kdy přistupuje ke kolekci. Kontrolní body jsou stanoveny tak, že mezi kontrolními body je na disk zaznamenán konzistentní pohled na data. V případě zhroucení mezi kontrolními body je snadné obnovit pomocí těchto kontrolních bodů nebo spíše, i když nejsou žádné kontrolní body pro data, lze je obnovit ze souborů diskového deníku.

Rozsáhlé využití mezipaměti místo disku ke zvýšení nízké latence. Úložný modul WiredTiger silně spoléhá na mezipaměť stránek OS, takže komprimovaná data jsou načítána bez použití disku. Kromě toho jsou z paměti RAM vymazána nejméně nedávno použitá data, čímž se zachová více místa pro mezipaměť.

Koncept úložiště B-Tree nabízí vysoce efektivní čtení a dobrý výkon zápisu při nízkém využití procesoru. Má také implementaci zamykání na úrovni dokumentů, která umožňuje vysoce souběžné pracovní zatížení, a tato souběžnost následně usnadňuje serveru využívat výhod mnoha základních CPU. Obecně platí, že všechny teze zvyšují vysokou škálovatelnost databáze.

Enterprise Edition podporuje šifrování na disku pro úložiště WiredTiger, což je funkce, která výrazně zlepšuje zabezpečení dat.

Úložný modul WiredTiger umožňuje protokolování s předběžným zápisem, které zajišťuje automatické obnovení po havárii a činí zápisy odolné.

Výhody WiredTiger Storage Engine

  • Efektivní úložiště díky řadě kompresních technologií, jako je komprese Snapp, gzip a prefix.
  • Je vysoce škálovatelný se současným čtením a zápisem. To v konečném důsledku zlepšuje propustnost a obecný výkon databáze.
  • Zajistěte trvanlivost dat pomocí protokolu zápisu napřed a použití kontrolních bodů.
  • Optimální využití paměti. WiredTiger používá vnitřní mezipaměť i mezipaměť systému souborů.
  • S mezipamětí systému souborů může MongoDB snadno využít volnou paměť, kterou nevyužívá mezipaměť WiredTiger.

Neúspěchy WiredTiger Storage Engine

Potíže s aktualizací dat. Schéma souběžnosti zabraňuje aktualizacím na místě, takže aktualizace hodnoty pole v dokumentu přepíše celý dokument.

Závěr

Úložný modul WiredTiger integruje koncepty dvou hlavních úložných enginů, B-Tree a LSM stromového úložiště, aby bylo dosaženo maximálního a optimálního výkonu. Zvážení výhod z obou případů a jejich společné využití dělá z WiredTiger univerzální úložiště. Z tohoto důvodu je v aktuálních verzích MongoDB výchozím úložištěm. To znamená, že pokud opravdu nemáte silný důvod to nenávidět, pak je to pro vaše data to nejlepší. Výběr úložného modulu však silně závisí na vašem případu použití dat nebo spíše tam, kde WiredTiger nemůže splnit vaše očekávání. Obecně se jedná o nejlepší výchozí modul úložiště.


  1. Sloučení dvou kolekcí v MongoDB

  2. Použití sed na proměnnou xargs nefunguje uvnitř expanze shellu

  3. Push Operations v MongoDB

  4. Jak exportovat výsledky dotazu MongoDB do souboru CSV