Имеет ли WiredTiger из MongoDb проблему с перераспределением производительности как MMAPv1?
Как сказано в документе MMAPv1
Все записи расположены на диске непрерывно, и когда документ становится больше выделенной записи, MongoDB должен выделить новую запись. Новые распределения требуют, чтобы MongoDB переместил документ и обновил все индексы, которые ссылаются на документ, что занимает больше времени, чем обновления на месте, и приводит к фрагментации хранилища. Изменено в версии 3.0.0.
По умолчанию MongoDB использует Power of 2 Sized Allocations, так что каждый документ в MongoDB хранится в записи, которая содержит сам документ и дополнительное пространство или отступы. Заполнение позволяет документу расти в результате обновлений, минимизируя вероятность перераспределения.
Но документ WiredTiger ничего не говорит об этом. Так что я просто хочу знать, все ли в порядке, когда размер записи изменяется или у него есть проблемы с производительностью, но он не упоминается в документе.
1 ответ
Вам не нужно беспокоиться о перемещении документов, заполнении и т. Д. С WiredTiger. Новые записи сначала записываются в файлы в неиспользуемых регионах, а затем включаются в остальные данные в фоновом режиме. WiredTiger, во время обновления, на самом деле будет писать новую версию документов, а не перезаписывать существующие данные, как это делает во многих случаях mmapv1. (Проверьте видео с бесплатных онлайн-курсов MongodDB)