-
Type: New Feature
-
Resolution: Won't Fix
-
Priority: Critical - P2
-
None
-
Affects Version/s: 2.1.1
-
Component/s: Concurrency, Storage
-
None
-
Minor Change
The current journaling implementation in MMAPV1 requires a global read lock on the mongod instance, to ensure that it can read consistent versions of all database private views when writing the journal. This makes deadlock avoidance in commitIfNeeded() somewhat hairy, and could become a performance bottleneck.
Instead, mongod should only lock one database at a time (plus the "local" database, perhaps) when writing to the journal from threads other than the durability thread (and optionally also the durability thread).
For performance, in MMAPV1 only any extremely long running single document update can block other operations if the journal thread is waiting for its completion.
Best solution is to avoid any updates that update many thousands of fields in a document in a single update.
- is related to
-
SERVER-25829 Don't run killop.js in mmapv1 sharding_jscore_passthrough suite
- Closed
- related to
-
SERVER-10747 $where operator can block all other operations
- Backlog