MongoDB
Подключаемые устройства хранения
Поиск…
замечания
В MongoDB 3.0 MMAP (по умолчанию) и WiredTiger являются стабильными системами хранения. Обычно, если ваше приложение отличается прочностью, используйте MMAP. Если его писать тяжело, используйте WiredTiger.
В вашем решении могут быть также смешанные элементы набора реплик, в которых вы можете настроить один узел с помощью MMAP, а другой - с помощью WiredTiger. Вы можете использовать один для вставки массивных данных, а другой - для чтения с помощью аналитических инструментов.
После MongoDB 3.2 WiredTiger становится двигателем по умолчанию.
MMAP
MMAP - это подключаемый модуль хранения, который был назван в честь команды mmap()
Linux. Он отображает файлы в виртуальную память и оптимизирует чтение вызовов. Если у вас большой файл, но ему нужно прочитать небольшую часть, mmap()
намного быстрее, чем вызов read()
, который приведет весь файл в память.
Одним из недостатков является то, что вы не можете обрабатывать два вызова записи параллельно для одной коллекции. Таким образом, MMAP имеет блокировку уровня сбора (а не блокировку на уровне документа, как предлагает WiredTiger). Эта сборка необходима, потому что один индекс MMAP может ссылаться на многократные документы, и если эти документы могут обновляться одновременно, индекс будет непоследовательным.
WiredTiger
WiredTiger поддерживает деревья LSM для хранения индексов . Деревья LSM быстрее выполняют операции записи, когда вам нужно писать огромные рабочие нагрузки случайных вставок.
В WiredTiger нет обновлений на месте . Если вам нужно обновить элемент документа, новый документ будет вставлен, когда старый документ будет удален.
WiredTiger также предлагает параллелизм на уровне документа . Предполагается, что две операции записи не будут влиять на один и тот же документ, но если это произойдет, одна операция будет перемотана и будет выполнена позже. Это отличное повышение производительности, если перематывание происходит редко.
WiredTiger поддерживает алгоритмы Snappy и zLib для сжатия данных и индексов в файловой системе. Snappy - это значение по умолчанию. Он менее интенсивный, но имеет меньшую степень сжатия, чем zLib.
Как использовать WiredTiger Engine
mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>
Замечания:
- После mongodb 3.2 двигатель по умолчанию - WiredTiger.
-
newWiredTigerDBPath
не должен содержать данные другого механизма хранения. Чтобы перенести данные, вы должны сбросить их и повторно импортировать их в новый механизм хранения.
mongodump --out <exportDataDestination>
mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>
mongorestore <exportDataDestination>
В памяти
Все данные хранятся в памяти (ОЗУ) для быстрого чтения / доступа.
Mongo-скалы
Механизм с ключевыми значениями, созданный для интеграции с RocksDB от Facebook.
Fusion-IO
Механизм хранения, созданный SanDisk, который позволяет обойти слой файловой системы OS и записывать непосредственно на устройство хранения.
TokuMX
Механизм хранения, созданный Percona, который использует фрактальные индексы дерева.