2015-05-29 1 views
0

MongoDB использует блокировку многоградулярности [1], которая позволяет осуществлять операции на глобальном уровне, уровне базы данных или коллекции и позволяет отдельным механизмам хранения реализовать собственный контроль параллелизма под коллекцией (т.е. , на уровне документа в WiredTiger).Блокировка многоградулярности MongoDB

Кроме того, я прочитал, что для MongoDB имеются два возможных механизма хранения: MMAPv1 (по умолчанию) и WiredTiger. Начиная с MongoDB 3.0, первая использует блокировку на уровне коллекций, вторую - блокировку на уровне документа. Что означает, что MongoDB позволяет выполнять операции для блокировки на уровне GLOBAL, DATABASE или COLLECTION? Это означает, что я могу выбрать блокировку гранулярности? Если да, то как я могу это сделать? Является ли это в отличие от блокировки гранулярности выбранного механизма хранения (например, уровня документа в WiredTiger)? И как я могу изменить механизм хранения с MMAPv1 на WiredTiger? Спасибо заранее.

+0

Хорошие вопросы, но, пожалуйста, прочитайте [это] (http://stackoverflow.com/help/how-to-ask). – marijnz0r

+0

Прошу прощения, если я не напишу свой вопрос наилучшим образом. Что случилось? Вы имеете в виду, что я должен был бы искать больше до публикации? –

+0

Вы могли бы найти больше, да. Но главное - вы сразу задаете 5 вопросов. Трудно написать для него один ответ. В будущем попробуйте задать один вопрос. Удачи! – marijnz0r

ответ

1

Ответ на

И как я могу изменить мой двигатель хранения от MMAPv1 до WiredTiger?

This page объясняет:

Start 3,0 mongod. Убедитесь, что 3.0 mongod работает с двигателем MMAPv1 по умолчанию.

Экспорт данных с помощью mongodump. mongodump --out <exportDataDestination> Укажите, если необходимо, дополнительные параметры, такие как имя пользователя и пароль при запуске с авторизацией. См. Mongodump для доступных опций.

Создать каталог данных для WiredTiger. Создайте новый каталог данных для WiredTiger. Убедитесь, что учетная запись пользователя, использующая mongod, имеет права на чтение и запись для нового каталога.

mongod с WiredTiger не запускается с файлами данных, созданными с другим механизмом хранения.

Перезапустите mongod с помощью WiredTiger. Перезапустите 3.0 mongod, указав wiredTiger как --storageEngine и вновь созданный каталог данных для WiredTiger как --dbpath. Укажите дополнительные параметры.

mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath> Вы также можете указать параметры в файле конфигурации. Чтобы указать механизм хранения, используйте новую настройку storage.engine.

+0

Спасибо, что объяснили, как изменить механизм хранения. Как насчет многогравиметрической блокировки? Я знаю, что означает «многогравитационная блокировка» вообще, но я не понимал, как я могу выбрать его (или если он будет автоматически выбран) в MongoDB. –

+0

Насколько я знаю, вы не можете контролировать блокировки самостоятельно, но я не знаю точно. Вы можете попробовать прочитать [FAQ] (http://docs.mongodb.org/manual/faq/concurrency/) – marijnz0r

Смежные вопросы