summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@oath.com>2018-03-20 12:13:31 +0000
committerTor Egge <Tor.Egge@oath.com>2018-03-20 12:13:31 +0000
commit07d909edcebc8e544e736c150a5a72dc5011c6e5 (patch)
tree02e97bd63121e4cbcbc65b31fdefeccdac481eeb
parent6df90e287746b9d19e127154b7619072efdb7178 (diff)
Use std::move to avoid unneeded atomic ops.
Add method to check if content node is up.
-rw-r--r--storage/src/vespa/storage/storageserver/changedbucketownershiphandler.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/storage/src/vespa/storage/storageserver/changedbucketownershiphandler.cpp b/storage/src/vespa/storage/storageserver/changedbucketownershiphandler.cpp
index 57fb7c5c24d..166aa25bc68 100644
--- a/storage/src/vespa/storage/storageserver/changedbucketownershiphandler.cpp
+++ b/storage/src/vespa/storage/storageserver/changedbucketownershiphandler.cpp
@@ -99,7 +99,7 @@ ChangedBucketOwnershipHandler::Metrics::~Metrics() { }
ChangedBucketOwnershipHandler::OwnershipState::OwnershipState(const ContentBucketSpaceRepo &contentBucketSpaceRepo,
std::shared_ptr<const lib::ClusterStateBundle> state)
: _distributions(),
- _state(state)
+ _state(std::move(state))
{
for (const auto &elem : contentBucketSpaceRepo) {
auto distribution = elem.second->getDistribution();
@@ -185,12 +185,15 @@ class StateDiffLazyAbortPredicate
bool _allDistributorsHaveGoneDown;
uint16_t _nodeIndex;
+ bool contentNodeUpInBucketSpace(document::BucketSpace bucketSpace) const {
+ return _newState.storageNodeUp(bucketSpace, _nodeIndex);
+ }
+
bool doShouldAbort(const document::Bucket &bucket) const override {
if (_allDistributorsHaveGoneDown) {
return true;
}
- bool storageNodeUp = _newState.storageNodeUp(bucket.getBucketSpace(), _nodeIndex);
- if (!storageNodeUp) {
+ if (!contentNodeUpInBucketSpace(bucket.getBucketSpace())) {
return true;
}
uint16_t oldOwner(_oldState.ownerOf(bucket));