Run the following against a replica set with majority read concern disabled. It generates bursts of updates spaced 15 seconds apart.
function update() { for (var i = 0; i < 1000; i++) db.c.insert({x: 0}) for (var x = 0; ; x++) { db.c.updateMany({}, {$set: {x: x}}) if (x%20 == 1) sleep(15000) } }
FTDC shows the following:
During the bursts we are executing a couple hundred batches per second, but the oldest timestamp is not advanced on every batch, and in fact may not be advanced for minutes at a time. This can cause a large amount of data to be pinned in cache.
- is related to
-
SERVER-33846 Alternative for setting oplog read timestamp on secondaries
- Closed