summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/collection_metadata.cpp
diff options
context:
space:
mode:
authorAndy Schwerin <schwerin@mongodb.com>2017-07-05 15:49:43 -0400
committerAndy Schwerin <schwerin@mongodb.com>2017-07-21 08:46:58 -0400
commita045e38ca392f8354ea85ec5cebfb6d52892f444 (patch)
tree9b67d77b3aa523a76eea5196f8334a03502b381f /src/mongo/db/s/collection_metadata.cpp
parent405b07f373d900e810965a838f1c4bbaf8b16dcb (diff)
downloadmongo-a045e38ca392f8354ea85ec5cebfb6d52892f444.tar.gz
SERVER-29817 Use hinted insert when building CollectionMetadata for performance.
Diffstat (limited to 'src/mongo/db/s/collection_metadata.cpp')
-rw-r--r--src/mongo/db/s/collection_metadata.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mongo/db/s/collection_metadata.cpp b/src/mongo/db/s/collection_metadata.cpp
index 6c05e401661..12c2d0813fe 100644
--- a/src/mongo/db/s/collection_metadata.cpp
+++ b/src/mongo/db/s/collection_metadata.cpp
@@ -55,7 +55,9 @@ CollectionMetadata::CollectionMetadata(std::shared_ptr<ChunkManager> cm, const S
if (chunk->getShardId() != _thisShardId)
continue;
- _chunksMap.emplace(chunk->getMin(), CachedChunkInfo(chunk->getMax(), chunk->getLastmod()));
+ _chunksMap.emplace_hint(_chunksMap.end(),
+ chunk->getMin(),
+ CachedChunkInfo(chunk->getMax(), chunk->getLastmod()));
}
if (_chunksMap.empty()) {
@@ -93,7 +95,8 @@ void CollectionMetadata::_buildRangesMap() {
continue;
}
- _rangesMap.emplace(min, CachedChunkInfo(max, ChunkVersion::IGNORED()));
+ _rangesMap.emplace_hint(
+ _rangesMap.end(), min, CachedChunkInfo(max, ChunkVersion::IGNORED()));
min = currMin;
max = currMax;