In the getMore command path, threads servicing awaitData cursors will always block rather than busy wait. For OP_GET_MORE, however, the thread will block if it is tailing the oplog but for any other capped collection it will busy wait.
We can use the per-capped collection condition variable added under SERVER-18184 to remove busy waiting from the OP_GET_MORE path.
- depends on
-
SERVER-19099 Switch stdx::polyfills for concurrency and time to use std components
- Closed
- is related to
-
SERVER-18184 Add awaitData support to getMore command
- Closed
- related to
-
SERVER-19947 Deadlock between aggregations with sorts on sharded collections and operations requiring MODE_X database locks
- Closed