Porozumění deníku v MongoDB



Blog poskytuje stručné informace o deníku v MongoDB

Práce s operací zápisu Mongod

Mongod primárně hostí operace zápisu do paměti ve sdíleném zobrazení. Nazývá se sdílená, protože má mapování paměti na skutečném disku.





Například datový soubor uživatele je uchováván na datovém dd a má mapování paměti. Tady nejprve zatlačí všechna data do paměti a po zadaném intervalu tato data flashuje do paměti, což nastává každých šedesát sekund a uživatel není v tomto procesu ovlivněn.

Zde se tento proces nazývá No Journal Option, což znamená, že v případě 60sekundového zpoždění pro uložení dat z paměti na disk nebo náhlého vypnutí to znamená, že data, která jsou v paměti, se nemusí načíst. Zde se tedy deník stává relevantní.



získejte délku pole javascript

Je důležité vědět, že deník byl ve výchozím nastavení před verzí 2.4.10 deaktivován, ale poté byl povolen.

V okamžiku, kdy se spustí mongodský proces, lze pozorovat následující prohlášení:

Deník dir = D: Rana2custom datajournal



Zde je adresář deníku podřízený adresář uvnitř datového adresáře a ve výchozím nastavení je povolen.

Co je to žurnálování v MongoDB?

V tomto procesu dojde v mongodu k operaci zápisu, která pak vytvoří změny v soukromém zobrazení. První blok je paměť a druhý blok je „můj disk“. Po zadaném intervalu, který se nazývá „interval potvrzení žurnálu“, soukromé zobrazení zapíše tyto operace do adresáře žurnálu (uloženého na disku).

Jakmile dojde ke spáchání deníku, mongod posílá data do sdíleného zobrazení. V rámci procesu se ze sdíleného zobrazení zapíše do skutečného datového adresáře (protože tento proces probíhá na pozadí). Základní výhodou je, že máme snížený cyklus z 60 sekund na 200 milisekund.

Ve scénáři, kdy dojde k přerušení v kterémkoli okamžiku nebo flash disk zůstane nedostupný po dobu posledních 59 sekund (mějte na paměti existující data v operacích adresáře / zápisu deníku), pak při příštím spuštění mongodu v zásadě nahradí všechny operace zápisu loguje a zapisuje do skutečného datového adresáře.

Jak to funguje?

Tady, jakmile dojde ke spáchání, stejná operace se přehraje ve sdíleném zobrazení a poté se po šedesáti sekundách stane flash disk.

Po blikání jsou data zpracována. Data zde jsou označena jako zpracovaná v adresáři žurnálu, což znamená, že každých šedesát sekund kontroluje data, která zkopírovala, a data, která mají být z deníku odstraněna.

Používání deníku je jako použití protokolu, protože vytváří protokol operace zápisu, který zvyšuje trvanlivost. Žurnálování je dočasné úložiště, což znamená, že v adresáři žurnálu ponechá pouze nevyřízený záznam operace zápisu. Sdílené zobrazení má také data, ale adresář deníku má operace.

Například pokud uživatel zapisuje některá data bez žurnálování, pak ať jsou zapsána jakákoli data, jeho mapování paměti umožňuje uživateli znát umístění, kde jsou data zapsána.

Propojení mezi soukromým a sdíleným zobrazením

Poté, co dojde k potvrzení, je označen jako proces v adresáři deníku a je provedeno další mapování pro aktuální zobrazení sdíleného / soukromého zobrazení (bez sdílení dat).

V grafu jsou všechny modré položky v paměti RAM (paměť s náhodným přístupem) a šafrán označuje disk.

Pokud v případě, že data neblikají v datovém adresáři, ale operace zápisu jsou tam v datovém adresáři, pak mongod přepracuje a použije operace zápisu do datového adresáře.

Je důležité si uvědomit, že ve scénáři, kde dojde k chybě před potvrzením deníku, jsou data, která bylapřipojenodo 200 milisekund bude ztraceno.

skener Java získat další char

Všimněte si také, že v adresáři žurnálu pokračujeme v psaní skutečné operace.

V příkladu prohlášení, jako je „Db.class.insert“ což je operace vložení, data jsou vložena do operací třídy. Operace třídy tedy ve skutečnosti nezůstane, ale operace přebývá.

Je třeba také poznamenat, že pokud dojde ke zpoždění při používání deníku, ovlivní to výkon.

Jeden může mít také žurnálování na pozadí jako asynchronní proces a nedělat nic v operacích synchronním způsobem. Ve výrobě se také doporučuje žurnálování.

Zadruhé je konfigurovatelný časový rámec intervalu potvrzení žurnálu „200 milisekund“, který lze povolit pomocí „- - intervalu potvrzení žurnálu“ kdekoli mezi 3 až 300 milisekundami, což vše závisí na nefunkčních požadavcích (jak často se zápisy dějí a jak často chce člověk psát do adresáře deníku). V případě, že probíhají těžké operace zápisu, je vhodné mít méně milisekund.

Také si všimněte, že soukromý pohled obsahuje skutečná data, protože soukromý je mapován se sdíleným pohledem. Sdílené zobrazení zde bliká do datového adresáře.

V tomto procesu je výhodou, kterou získáváme, v případě, že dojde k selhání serveru a nejsou k dispozici žádná data, která je třeba zapsat na blesky, a poté další server restartující mongod zkontroluje obnovení adresáře deníku. Obnoví, přehraje a zapíše operace do datového adresáře a poté se spustí.

Máte na nás dotaz? Uveďte je v sekci komentáře a my se vám ozveme.

Související příspěvky:

co je vizualizace dat v tablo