diff options
author | Paolo Polato <paolo.polato@mongodb.com> | 2021-05-12 10:52:55 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-06-21 15:14:59 +0000 |
commit | aa716ebc9b4459881540b657986859e6ef3e15c6 (patch) | |
tree | db6e423e0cbc2572dc0774ff4e7ef341a78a5a39 | |
parent | c35c05f6e55a44a15972040f8c552a18a7725dfa (diff) | |
download | mongo-aa716ebc9b4459881540b657986859e6ef3e15c6.tar.gz |
SERVER-56307 Ensure that the estimated size of an object id is always bigger than zero.
(cherry picked from commit 7d0aee4c7dec9380c3ef8be20c31b1334b27cd20)
-rw-r--r-- | src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp b/src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp index 6b65ecd7a50..1d13f3728fd 100644 --- a/src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp +++ b/src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp @@ -898,7 +898,8 @@ Status MigrationChunkClonerSourceLegacy::_storeCurrentLocs(OperationContext* opC const uint64_t collectionAverageObjectSize = collection->averageObjectSize(opCtx); - uint64_t averageObjectIdSize = OID::kOIDSize; + uint64_t averageObjectIdSize = 0; + const uint64_t defaultObjectIdSize = OID::kOIDSize; if (totalRecs > 0) { const auto idIdx = collection->getIndexCatalog()->findIdIndex(opCtx)->getEntry(); if (!idIdx) { @@ -921,8 +922,8 @@ Status MigrationChunkClonerSourceLegacy::_storeCurrentLocs(OperationContext* opC } stdx::lock_guard<Latch> lk(_mutex); - _averageObjectSizeForCloneLocs = collectionAverageObjectSize + 12; - _averageObjectIdSize = averageObjectIdSize; + _averageObjectSizeForCloneLocs = collectionAverageObjectSize + defaultObjectIdSize; + _averageObjectIdSize = std::max(averageObjectIdSize, defaultObjectIdSize); return Status::OK(); } |