2015-03-23 2 views
0

Существует небольшая документация, доступная о wiredTiger на веб-сайте MongoDB, и она не охватывает многие параметры конфигурации, перечисленные на веб-сайте wiredTiger. На основе документации wiredtiger (http://source.wiredtiger.com/develop/tune_durability.html#tune_durability_flush_config), я включил транзакционные параметры прочности, как показано ниже -MongoDB - опция долговечности WiredTiger transaction_sync

 
storage: 
    engine: "wiredTiger" 
    wiredTiger: 
     engineConfig: 
      cacheSizeGB: 3 
      configString: "log=(enabled),transaction_sync=(enabled=true,method=fsync)" 

Мой вопрос, как это поддерживается? Сервер mongoDB запускается без жалобы на этот параметр, но как я могу проверить, что он действует?

Спасибо

+2

Какое влияние вы пытаетесь достичь? Скорее всего, есть другой правильный способ добраться туда. –

+0

Я хочу чаще сохранять данные на диске (если это возможно в реальном времени). С MMAPV1 мы могли бы использовать журналирование, писать проблемы и использовать commitinterval для настройки, но что мы делаем с помощью wiredTiger? – Milind

+0

, если вы используете функцию записи j: true, то в WT это приведет к синхронному запуску журнала - то есть никакая запись не будет подтверждена до тех пор, пока она не будет сброшена на диск с журналом. Вы не должны вносить какие-либо изменения в конфигурацию mongod - просто используйте j: true в качестве проблемы с записью по умолчанию (или только для конкретной записи, в зависимости от ваших потребностей). Я отправлю его в качестве ответа. –

ответ

2

Вы разъяснено, что вы хотите, чтобы сохраняться в записи на диск как можно чаще, если это возможно в режиме реального времени.

Вы можете добиться этого с помощью WiredTiger без изменения параметров запуска. С помощью writeConcernj:true или "journal acknowledged" ваши записи будут подтверждены только после того, как они будут записаны в журнал и сброшены на диск. Вы можете установить свой writeConcern по умолчанию при подключении к j:true, или вы можете установить его для отдельных записей в зависимости от ваших требований.

+0

Привет, Ася, Спасибо за ваше время и ответ. Как упоминалось выше, я использую механизм wiredTiger, а параметры storage.wiredTiger не включают параметры журнала и commitIntervalMs, но для mmapv1. Могу ли я вместо этого изменить настройки репликации, чтобы использовать fsync, как показано ниже? cfg.settings = {"chainingAllowed": true, "heartbeatTimeoutSecs": 10, "getLastErrorModes": {}, "getLastErrorDefaults": {"w": "most", "wtimeout": 0, "fsync": true}} , Достигнет ли это желаемый результат достижения максимально возможной долговечности транзакции? – Milind

+1

вы никогда не должны использовать fsync: true, поскольку он просто возвращается к j: true и будет устаревшим. Использование j: true * является * максимально возможной долговечностью транзакций (на одном сервере). если у вас есть набор реплик, добавление w: большинство увеличит срок службы кластера. WiredTiger не включает те же параметры, что и mmap, поскольку его поведение по умолчанию отличается, и нет смысла иметь параметр для чего-то, что уже происходит автоматически (fsync'ing журнала по j: true синхронно). –

+0

Благодарим вас за разъяснение. У меня есть еще один вопрос для вас. Когда вы говорите синхронно, это не связано с свойством commitIntervalMs, которое принимает минимальное значение 2ms? Еще раз спасибо за ваше время и терпение. Ценю вашу помощь. – Milind

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