diff options
author | Andy Schwerin <schwerin@mongodb.com> | 2017-07-05 15:49:43 -0400 |
---|---|---|
committer | Andy Schwerin <schwerin@mongodb.com> | 2017-07-21 08:46:58 -0400 |
commit | a045e38ca392f8354ea85ec5cebfb6d52892f444 (patch) | |
tree | 9b67d77b3aa523a76eea5196f8334a03502b381f /src/mongo/db/s/collection_metadata.cpp | |
parent | 405b07f373d900e810965a838f1c4bbaf8b16dcb (diff) | |
download | mongo-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.cpp | 7 |
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; |