MongoDB has low CPU usage and does not process requests while a background flush is proceeding.
The cause of this has been identified as the following blocking chain:
The lock was originally added in
SERVER-7378 to workaround a bug in the Windows Azure Storage driver . It has been confirmed by Microsoft that there is a bug in the driver that only affects (a) memory mapped files such as MongoDB databases which are (b) concurrently updated while flushing to (c) a drive that is hosted on a Azure disk that does not set host cache preference to read/write.
We have removed the
SERVER-7378 workaround since it penalizes all Windows deployment scenarios, including all scenarios where there is no bug (like bare-metal, other cloud providers, etc).