Re: Disabling journal commit for a specific collection.

From: Kevin Adistambha <kevinadi@xxxxxxxxxxx>
To: mongodb-user <mongodb-user@xxxxxxxxxxxxxxxx>
Date: Thu, 12 May 2016 00:57:11 -0700 (PDT)
Why ads?


Hi,

I am a bit confused about the sequence of mongod journal operation with 
respect to write concern values.
As per my understanding journal write happens first in private view and 
then the shared data view gets updated.

There are some differences in journaling behavior with regards to write 
concern settings between MongoDB versions, storage engines, and deployment 
topology (e.g. standalone or replica set). The behavior you are describing 
is correct for MMAPv1 storage engine 
<https://docs.mongodb.com/manual/core/mmapv1/> only, since MMAPv1 requires 
the journal and the private view to recover to a consistent state in the 
event of a crash. The WiredTiger storage engine 
<https://docs.mongodb.com/manual/core/wiredtiger/> uses journaling 
differently since it uses checkpoints 
<https://docs.mongodb.com/manual/core/wiredtiger/#storage-wiredtiger-checkpoints
to provide data consistency.


   1. With w=default , journal=true, does the write gets blocked until 
   journal update actually happens which is 100 ms by default? 

I’m assuming that by w:default you meant w:1, which is the default w 
setting in MongoDB 
<https://docs.mongodb.com/manual/reference/write-concern/#w-option>. I’m 
also basing the answers on MongoDB 3.2.

From the page storage.journal.commitIntervalMs 
<https://docs.mongodb.com/manual/reference/configuration-options/#storage.journal.commitIntervalMs>
:

   - In MMAPv1, setting a write operation with w:1, j:true alters the 
   journaling interval to 1/3 of its value (this is 100 ms by default if the 
   journal and the data files are located within the same block device). 
   Therefore, if you specify write concern of w:1, j:true, the journal 
   commit interval will be approximately 33 ms. 
   - In WiredTiger, setting a write operation with w:1, j:true will cause 
   an immediate sync of the journal 


   1. With w=default and journal=false, does the write return before actual 
   journal write happens, but journal write still happens in the background. 

Yes this is correct.

Also Is it possible to disable journal commit for a specific mongod 
collection while leaving it on for others?

No, the journal setting is set per mongod, and cannot be set per-database 
or per-collection.

For a general overview on how journaling works in MMAPv1 and WiredTiger, 
please see the Journaling <https://docs.mongodb.com/manual/core/journaling/
page.

Best regards,
Kevin


-- 
You received this message because you are subscribed to the Google Groups "mongodb-user"
group.

For other MongoDB technical support options, see: https://docs.mongodb.org/manual/support/
--- 
You received this message because you are subscribed to the Google Groups "mongodb-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mongodb-user+unsubscribe@xxxxxxxxxxxxxxxx.
To post to this group, send email to mongodb-user@xxxxxxxxxxxxxxxx.
Visit this group at https://groups.google.com/group/mongodb-user.
To view this discussion on the web visit https://groups.google.com/d/msgid/mongodb-user/db2054f0-f292-43d9-9852-9113fde5ad29%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Why ads?