diff options
author | Tor Egge <Tor.Egge@oath.com> | 2018-03-20 12:13:31 +0000 |
---|---|---|
committer | Tor Egge <Tor.Egge@oath.com> | 2018-03-20 12:13:31 +0000 |
commit | 07d909edcebc8e544e736c150a5a72dc5011c6e5 (patch) | |
tree | 02e97bd63121e4cbcbc65b31fdefeccdac481eeb | |
parent | 6df90e287746b9d19e127154b7619072efdb7178 (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.cpp | 9 |
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)); |