diff options
Diffstat (limited to 'src/mongo/db/exec/batched_delete_stage.cpp')
-rw-r--r-- | src/mongo/db/exec/batched_delete_stage.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/db/exec/batched_delete_stage.cpp b/src/mongo/db/exec/batched_delete_stage.cpp index 63242ad5206..b12a5c0d73b 100644 --- a/src/mongo/db/exec/batched_delete_stage.cpp +++ b/src/mongo/db/exec/batched_delete_stage.cpp @@ -255,6 +255,7 @@ PlanStage::StageState BatchedDeleteStage::_deleteBatch(WorkingSetID* out) { std::set<WorkingSetID> recordsToSkip; unsigned int docsDeleted = 0; + unsigned int bytesDeleted = 0; unsigned int bufferOffset = 0; long long timeInBatch = 0; @@ -264,7 +265,8 @@ PlanStage::StageState BatchedDeleteStage::_deleteBatch(WorkingSetID* out) { "BatchedDeleteStage::_deleteBatch", collection()->ns().ns(), [&] { - timeInBatch = _commitBatch(out, &recordsToSkip, &docsDeleted, &bufferOffset); + timeInBatch = + _commitBatch(out, &recordsToSkip, &docsDeleted, &bytesDeleted, &bufferOffset); return PlanStage::NEED_TIME; }, [&] { @@ -292,6 +294,7 @@ PlanStage::StageState BatchedDeleteStage::_deleteBatch(WorkingSetID* out) { incrementSSSMetricNoOverflow(batchedDeletesSSS.batches, 1); incrementSSSMetricNoOverflow(batchedDeletesSSS.timeInBatchMillis, timeInBatch); _specificStats.docsDeleted += docsDeleted; + _specificStats.bytesDeleted += bytesDeleted; if (bufferOffset < _stagedDeletesBuffer.size()) { // targetBatchTimeMS was met. Remove staged deletes that have been evaluated @@ -312,6 +315,7 @@ PlanStage::StageState BatchedDeleteStage::_deleteBatch(WorkingSetID* out) { long long BatchedDeleteStage::_commitBatch(WorkingSetID* out, std::set<WorkingSetID>* recordsToSkip, unsigned int* docsDeleted, + unsigned int* bytesDeleted, unsigned int* bufferOffset) { // Estimate the size of the oplog entry that would result from committing the batch, // to ensure we emit an oplog entry that's within the 16MB BSON limit. @@ -395,6 +399,7 @@ long long BatchedDeleteStage::_commitBatch(WorkingSetID* out, : Collection::StoreDeletedDoc::Off); (*docsDeleted)++; + (*bytesDeleted) += bsonObjDoc.objsize(); batchedDeleteStageSleepAfterNDocuments.executeIf( [&](const BSONObj& data) { |