Работа с операцией записи Mongod
Mongod в основном размещает операции записи в памяти в общем представлении. Он называется общим, потому что он имеет отображение памяти на реальном диске.
Например, файл данных пользователя хранится по адресу data dd и имеет отображение памяти. Здесь он сначала помещает все данные в память, а после заданного интервала мигает данные в память, что происходит каждые шестьдесят секунд, и этот процесс не влияет на пользователя.
Здесь этот процесс называется опцией «Нет журнала», что означает, что в случае 60-секундной задержки для сохранения данных из памяти на диск или внезапного завершения работы это означает, что любые данные, находящиеся в памяти, не могут быть извлечены. Таким образом, здесь становится актуальным ведение журнала.
как пройти по ссылке в java
Важно знать, что до версии 2.4.10 ведение журнала было отключено по умолчанию, но после этого оно было включено.
В момент запуска процесса mongod можно наблюдать следующее утверждение:
Журнал dir = D: Rana2custom datajournal
Здесь каталог журналов является дочерним каталогом внутри каталога данных и по умолчанию включен.
Что такое ведение журнала в MongoDB?
В этом процессе в mongod выполняется операция записи, которая затем создает изменения в частном представлении. Первый блок - это память, а второй - «мой диск». По истечении заданного интервала, который называется «интервалом фиксации журнала», частное представление записывает эти операции в каталог журнала (находящийся на диске).
Как только происходит фиксация журнала, mongod помещает данные в общее представление. Как часть процесса, он записывается в реальный каталог данных из общего представления (поскольку этот процесс происходит в фоновом режиме). Основное преимущество в том, что у нас есть сокращенный цикл с 60 секунд до 200 миллисекунд.
В сценарии, когда в любой момент времени происходит прерывание или флеш-диск остается недоступным в течение последних 59 секунд (с учетом существующих данных в каталоге журнала / операций записи), затем при следующем запуске mongod он в основном воспроизводит все операции записи регистрирует и записывает в фактический каталог данных.
Как это устроено?
Здесь, когда происходит фиксация, та же операция воспроизводится в общем представлении, а затем, через шестьдесят секунд, происходит флэш-диск.
После прошивки данные обрабатываются. Данные здесь помечаются как обработанные в каталоге журнала, что означает, что каждые шестьдесят секунд он проверяет скопированные данные и те, которые предполагается удалить из журнала.
Использование ведения журнала аналогично использованию журнала, поскольку оно создает журнал операций записи для повышения надежности. Ведение журнала - это временное хранилище, что означает, что в каталоге журнала хранится только журнал операций записи как отложенный. Кроме того, общее представление содержит данные, а каталог журнала - операции.
Например, если пользователь записывает некоторые данные без ведения журнала, то какие бы данные ни записывались, их отображение в памяти позволяет пользователю узнать место, в которое записаны данные.
Связь между частным просмотром и общим просмотром
После совершения фиксации он помечается как процесс в каталоге журнала, и выполняется еще одно сопоставление для текущего представления общего / частного представления (без обмена данными).
В таблице все синие элементы находятся в ОЗУ (оперативная память), а шафран обозначает диск.
Если в этом случае данные не записываются в каталог данных, а операции записи находятся в каталоге данных, то mongod повторно обработает и применит операции записи к каталогу данных.
Важно отметить, что в сценарии, когда сбой происходит до фиксации журнала, данные, которые былидобавленв течение 200 миллисекунд будет потеряно.
Java разница между орудиями и расширениями
Также обратите внимание, что в каталоге журнала мы продолжаем записывать фактическую операцию.
В примере утверждения, например ‘Db.class.insert’ которая является операцией вставки, данные вставляются в операции класса. Таким образом, операция класса фактически не остается, но операция остается.
Также следует отметить, что задержка в использовании журнала влияет на производительность.
Также можно использовать ведение журнала в фоновом режиме как асинхронный процесс и ничего не делать в операциях синхронным образом. Журналирование также рекомендуется в производстве.
Во-вторых, можно настроить интервал фиксации журнала в 200 миллисекунд, который можно включить с помощью параметра «- - journal commit interval» от 3 до 300 миллисекунд, что все зависит от нефункционирующих требований (как часто происходит запись и как часто хочется писать в справочнике журнала). В случае, если выполняются тяжелые операции записи, рекомендуется использовать меньшие миллисекунды.
Также обратите внимание, что частное представление содержит фактические данные, поскольку частное отображается с общим представлением. Общий вид здесь мигает в каталог данных.
В этом процессе мы получаем преимущество в том, что в случае сбоя сервера и отсутствия данных, которые необходимо записать во флэш-память, при следующем перезапуске сервера mongod проверит каталог журнала на предмет восстановления. Он восстановит, воспроизведет и запишет операции в каталог данных, а затем запустится.
Есть вопрос к нам? Упомяните их в разделе комментариев, и мы свяжемся с вами.
Похожие сообщения:
синхронизация потоков в примере java