summaryrefslogtreecommitdiff
path: root/src/mongo/s/chunk.cpp
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2017-02-16 17:28:43 -0500
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2017-02-18 11:07:52 -0500
commit41729cec076164077f13571e35596934477d7110 (patch)
treea747bbd4ff5cbb5f88e357d165167eaa242d590d /src/mongo/s/chunk.cpp
parentf2744a782db74983e3ce4e145839ea15f1e4dd5f (diff)
downloadmongo-41729cec076164077f13571e35596934477d7110.tar.gz
SERVER-28030 Remove writes from Chunk
Diffstat (limited to 'src/mongo/s/chunk.cpp')
-rw-r--r--src/mongo/s/chunk.cpp46
1 files changed, 4 insertions, 42 deletions
diff --git a/src/mongo/s/chunk.cpp b/src/mongo/s/chunk.cpp
index ff4341c3f7f..3c726477bc1 100644
--- a/src/mongo/s/chunk.cpp
+++ b/src/mongo/s/chunk.cpp
@@ -34,9 +34,6 @@
#include "mongo/platform/random.h"
#include "mongo/s/balancer_configuration.h"
-#include "mongo/s/catalog/sharding_catalog_client.h"
-#include "mongo/s/catalog/type_chunk.h"
-#include "mongo/s/chunk_manager.h"
#include "mongo/s/grid.h"
#include "mongo/util/log.h"
@@ -57,10 +54,8 @@ int64_t mkDataWritten() {
} // namespace
-Chunk::Chunk(ChunkManager* manager, const ChunkType& from)
- : _manager(manager),
- _min(from.getMin().getOwned()),
- _max(from.getMax().getOwned()),
+Chunk::Chunk(const ChunkType& from)
+ : _range(from.getMin(), from.getMax()),
_shardId(from.getShard()),
_lastmod(from.getVersion()),
_jumbo(from.getJumbo()),
@@ -68,20 +63,6 @@ Chunk::Chunk(ChunkManager* manager, const ChunkType& from)
invariantOK(from.validate());
}
-Chunk::Chunk(ChunkManager* manager,
- const BSONObj& min,
- const BSONObj& max,
- const ShardId& shardId,
- ChunkVersion lastmod,
- uint64_t initialDataWritten)
- : _manager(manager),
- _min(min),
- _max(max),
- _shardId(shardId),
- _lastmod(lastmod),
- _jumbo(false),
- _dataWritten(initialDataWritten) {}
-
bool Chunk::containsKey(const BSONObj& shardKey) const {
return getMin().woCompare(shardKey) <= 0 && shardKey.woCompare(getMax()) < 0;
}
@@ -106,30 +87,11 @@ void Chunk::randomizeBytesWritten() {
std::string Chunk::toString() const {
return str::stream() << ChunkType::shard() << ": " << _shardId << ", "
<< ChunkType::DEPRECATED_lastmod() << ": " << _lastmod.toString() << ", "
- << ChunkType::min() << ": " << _min << ", " << ChunkType::max() << ": "
- << _max;
+ << _range.toString();
}
-void Chunk::markAsJumbo(OperationContext* txn) const {
- log() << "Marking chunk " << toString() << " as jumbo.";
-
- // set this first
- // even if we can't set it in the db
- // at least this mongos won't try and keep moving
+void Chunk::markAsJumbo() {
_jumbo = true;
-
- const std::string chunkName = ChunkType::genID(_manager->getns(), _min);
-
- auto status = Grid::get(txn)->catalogClient(txn)->updateConfigDocument(
- txn,
- ChunkType::ConfigNS,
- BSON(ChunkType::name(chunkName)),
- BSON("$set" << BSON(ChunkType::jumbo(true))),
- false,
- ShardingCatalogClient::kMajorityWriteConcern);
- if (!status.isOK()) {
- warning() << "couldn't set jumbo for chunk: " << chunkName << causedBy(status.getStatus());
- }
}
} // namespace mongo