Как происходит запись в MongoDB?

MongoDB использует механизм хранения WiredTiger для обработки операций записи, а также использует 50% доступного кеша. Итак, я хочу понять, как wiredTiger использует кеш для записи данных. И почему по умолчанию требует 50% кеша? Если размер кэша уменьшить до 10-20%, насколько это повлияет на запись?


person Sam    schedule 13.02.2020    source источник


Ответы (1)


Для MongoDB версии 3.2 WiredTiger является механизмом хранения по умолчанию.

WiredTiger выполняет блокировку на уровне документа. Это уменьшает блокировки. И это позволяет нам одновременно читать или обновлять несколько документов в коллекции.

Механизм хранения WiredTiger является значительным улучшением по сравнению с MMAPv1 в плане производительности и параллелизма. Он также предлагает преимущества сжатия и шифрования.

По умолчанию MongoDB резервирует 50 процентов доступной памяти для кэша данных WiredTiger. Размер этого кэша важен для обеспечения адекватной работы WiredTiger. Хорошее эмпирическое правило заключается в том, что размер кэша должен быть достаточно большим, чтобы вместить весь рабочий набор приложения.

db.serverStatus().wiredTiger.cache

Настроено wiredTiger.cache.maximum байт: это максимальный размер кэша.

wiredTiger.cache.bytes в настоящее время в кеше — это размер данных, находящихся в данный момент в кеше. Это значение не должно превышать установленное максимальное количество байтов.

wiredTiger.cache.tracked грязных байтов в кеше — это размер грязных данных в кеше. Это значение должно быть меньше байтов, находящихся в настоящее время в значении кэша.

Глядя на эти значения, мы можем определить, нужно ли нам увеличивать размер кеша для нашего экземпляра. Кроме того, мы можем посмотреть на значение wiredTiger.cache.bytes чтения в кэш для приложений с интенсивным чтением. Если это значение постоянно высокое, увеличение размера кэша может улучшить общую производительность чтения.

person Prabhjot Singh Kainth    schedule 13.02.2020
comment
Да, я понял, но мой вопрос очень специфичен, как wiredTiger использует свой кеш. - person Sam; 13.02.2020