diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2015-08-13 17:04:55 -0400 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2015-08-14 15:27:44 -0400 |
commit | cec89b290906adb7d36507d20d619aaa5a6f6c16 (patch) | |
tree | 7f9bc55b68751f87c78046aa23294e29e7034a1b /src/mongo/s/write_ops/batch_write_op.cpp | |
parent | 914c12f4c7e850cacc6292bc330101579a0627ef (diff) | |
download | mongo-cec89b290906adb7d36507d20d619aaa5a6f6c16.tar.gz |
SERVER-19855 Include min OpTime with shard version
This change adds the OpTime of the chunk manager as of the time its cached
metadata was loaded along with each versioned request sent from MongoS.
This includes write commands and the setShardVersion command.
The OpTime is only sent as part of this change. There will be a follow-up
change to add code to interpret this information on the MongoD side.
Diffstat (limited to 'src/mongo/s/write_ops/batch_write_op.cpp')
-rw-r--r-- | src/mongo/s/write_ops/batch_write_op.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mongo/s/write_ops/batch_write_op.cpp b/src/mongo/s/write_ops/batch_write_op.cpp index 113dd9133f8..ba7ddae8d95 100644 --- a/src/mongo/s/write_ops/batch_write_op.cpp +++ b/src/mongo/s/write_ops/batch_write_op.cpp @@ -87,11 +87,13 @@ static int compareEndpoints(const ShardEndpoint* endpointA, const ShardEndpoint* if (shardNameDiff != 0) return shardNameDiff; - long shardVersionDiff = endpointA->shardVersion.toLong() - endpointB->shardVersion.toLong(); + long shardVersionDiff = endpointA->shardVersion.getVersion().toLong() - + endpointB->shardVersion.getVersion().toLong(); if (shardVersionDiff != 0) return shardVersionDiff; - int shardEpochDiff = endpointA->shardVersion.epoch().compare(endpointB->shardVersion.epoch()); + int shardEpochDiff = endpointA->shardVersion.getVersion().epoch().compare( + endpointB->shardVersion.getVersion().epoch()); return shardEpochDiff; } @@ -456,7 +458,8 @@ void BatchWriteOp::buildBatchRequest(const TargetedWriteBatch& targetedBatch, unique_ptr<BatchedRequestMetadata> requestMetadata(new BatchedRequestMetadata()); requestMetadata->setShardName(targetedBatch.getEndpoint().shardName); - requestMetadata->setShardVersion(targetedBatch.getEndpoint().shardVersion); + requestMetadata->setShardVersion( + ChunkVersionAndOpTime(targetedBatch.getEndpoint().shardVersion)); requestMetadata->setSession(0); request->setMetadata(requestMetadata.release()); } |