Работа с операция Mongod Write
Mongod главно хоства операциите за запис в паметта в споделен изглед. Тя се нарича споделена, защото има картографиране на паметта в действителния диск.
Например файлът с данни на потребителя се съхранява в data dd и има картографиране на паметта. Тук той първо изтласква всички данни в паметта и след определен интервал мига данните в паметта, което се случва на всеки шейсет секунди и потребителят не е засегнат в този процес.
Тук този процес се нарича No Journal Option, което означава, че в случай че има 60 секундно закъснение за запазване на данни от паметта на диск или рязко изключване, това означава, че каквито и данни да са в паметта, може да не бъдат извлечени. По този начин Журналирането става актуално тук.
какво всичко може да наблюдава nagios
Важно е да знаете, че журналирането е било деактивирано преди версия 2.4.10 по подразбиране, но след това е активирано.
В момента, в който процесът mongod стартира, може да се наблюдава следното твърдение:
Реж. На дневника = D: Rana2custom datajournal
Тук Directory Directory е дъщерна директория в директорията с данни и по подразбиране е активирана.
Какво представлява журналирането в MongoDB?
В този процес се извършва операция за запис в mongod, която след това създава промени в частния изглед. Първият блок е памет, а вторият блок е „моят диск“. След определен интервал, който се нарича „интервал за запис на журнал“, частният изглед записва тези операции в директория на дневника (пребиваващи в диска).
След като се извърши фиксирането на дневника, mongod изпраща данни в споделен изглед. Като част от процеса, той се записва в действителната директория с данни от споделения изглед (тъй като този процес се случва във фонов режим). Основното предимство е, че имаме намален цикъл от 60 секунди на 200 милисекунди.
В сценарий, при който възниква прекъсване във всеки момент от времето или флаш дискът остава недостъпен за последните 59 секунди (имайки предвид съществуващите данни в директорията на дневника / операциите за запис), след това, когато следващият път, когато mongod стартира, той основно възпроизвежда всички операции за запис регистрира и записва в реалната директория с данни.
Как работи?
Тук, след като се извърши фиксиране, същата операция се възпроизвежда в споделен изглед и след шестдесет секунди се случва флаш дискът.
След като мига, данните се обработват. Данните тук са маркирани като обработени в директорията на дневника, което означава, че на всеки шейсет секунди той проверява данните, които е копирал, и тези, които трябва да бъдат премахнати от дневника.
Използването на журналиране е като използването на дневник, тъй като причината е, че той създава дневник на операцията за запис, за да увеличи трайността. Журналирането е временно съхранение, което означава, че съхранява само дневника на операциите за запис като чакащ в директорията на дневника. Също така, споделеният изглед има данни, но директорията на дневника има операции.
как да изляза от Java програма
Например, ако потребителят пише някои данни без журналиране, тогава каквито и данни да са записани, тяхното картографиране на паметта позволява на потребителя да знае местоположението, където се записват данните.
Връзка между частен изглед и споделен изглед
След като се извърши фиксирането, той се маркира като процес в директорията на дневника и се извършва друго картографиране за текущия изглед на споделен / частен изглед (без споделяне на данни).
В диаграмата всички сини елементи са в RAM (памет с произволен достъп) и шафранът обозначава диска.
Ако в случай, данните не са мигани в директорията с данни, но операциите за запис са там в директорията с данни, тогава mongod ще преработи и ще приложи операции за запис към директорията с данни.
Важен момент, който трябва да се отбележи е, че в сценарий, при който се случи срив преди фиксиране на дневника, данните, които бяхаприложенав рамките на 200 милисекунди ще бъдат загубени.
Също така имайте предвид, че в директорията на дневника продължаваме да записваме действителната операция.
В примерния израз, като „Db.class.insert“ което е операция за вмъкване, данните в операцията за вмъкване в клас. Така че операцията на класа всъщност не остава, но операцията се намира.
Трябва също така да се отбележи, че ако има забавяне при използването на дневника, това се отразява на производителността.
Може да има и журналиране във фонов режим като асинхронен процес и да не се прави нищо в операциите по синхронен начин. Журналирането се препоръчва и в производството.
На второ място, времевият интервал на ангажиране на дневника от „200 милисекунди“ е конфигурируем, който може да бъде активиран с „- - интервал на ангажиране на дневника“ някъде между 3 до 300 милисекунди, което всичко зависи от неработещите изисквания (колко често се случва записването и колко често човек иска да пише в директорията на дневника). В случай, че продължават тежки операции на запис, препоръчително е да имате по-малки милисекунди.
Също така имайте предвид, че частният изглед съдържа действителни данни, тъй като частният се съпоставя със споделен изглед. Споделеният изглед тук го мига към директорията с данни.
В този процес предимството, което получаваме, е, че в случай, че имаме сривове на сървъра и няма налични данни, които трябва да бъдат записани на мига, след това следващият сървър, рестартиращ mongod, ще провери директорията на дневника за възстановяване. Той ще възстанови, възпроизведе и запише операции в директорията с данни и след това ще започне.
Имате въпрос към нас? Споменете ги в раздела за коментари и ние ще се свържем с вас.
Подобни публикации:
какво е рамка в Java