diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-08-08 20:34:40 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-08-08 20:34:40 +0000 |
commit | b479f5b2a572a8a75cf14ca12016b38f2ff05b76 (patch) | |
tree | 76a45b3b0e4de6dad2f664c43b9f3c350eb113a6 /storage | |
parent | b0e64927bc95abe3587262084dd57fbb3ef038e4 (diff) |
Move where possible
Diffstat (limited to 'storage')
3 files changed, 33 insertions, 35 deletions
diff --git a/storage/src/tests/distributor/bucketdbmetricupdatertest.cpp b/storage/src/tests/distributor/bucketdbmetricupdatertest.cpp index c4536c6fa2c..ab4ff881d90 100644 --- a/storage/src/tests/distributor/bucketdbmetricupdatertest.cpp +++ b/storage/src/tests/distributor/bucketdbmetricupdatertest.cpp @@ -7,7 +7,6 @@ #include <vespa/vespalib/util/memoryusage.h> #include <vespa/vespalib/gtest/gtest.h> #include <string> -#include <sstream> namespace storage::distributor { @@ -16,8 +15,7 @@ using namespace ::testing; struct BucketDBMetricUpdaterTest : Test { void visitBucketWith2Copies1Trusted(BucketDBMetricUpdater& metricUpdater); - void visitBucketWith2CopiesBothTrusted( - BucketDBMetricUpdater& metricUpdater); + void visitBucketWith2CopiesBothTrusted(BucketDBMetricUpdater& metricUpdater); void visitBucketWith1Copy(BucketDBMetricUpdater& metricUpdater); using NodeToReplicasMap = std::unordered_map<uint16_t, uint32_t>; @@ -26,9 +24,7 @@ struct BucketDBMetricUpdaterTest : Test { BucketDBMetricUpdaterTest(); }; -BucketDBMetricUpdaterTest::BucketDBMetricUpdaterTest() -{ -} +BucketDBMetricUpdaterTest::BucketDBMetricUpdaterTest() = default; namespace { @@ -38,8 +34,6 @@ void addNode(BucketInfo& info, uint16_t node, uint32_t crc) { info.addNode(BucketCopy(1234, node, apiInfo), order); } -using Trusted = bool; - BucketInfo makeInfo(uint32_t copy0Crc) { @@ -271,8 +265,7 @@ TEST_F(BucketDBMetricUpdaterTest, complete_round_clears_working_state) { // Replicas on nodes 0 and 1. void -BucketDBMetricUpdaterTest::visitBucketWith2Copies1Trusted( - BucketDBMetricUpdater& metricUpdater) +BucketDBMetricUpdaterTest::visitBucketWith2Copies1Trusted(BucketDBMetricUpdater& metricUpdater) { BucketInfo info; addNode(info, 0, 100); @@ -283,8 +276,7 @@ BucketDBMetricUpdaterTest::visitBucketWith2Copies1Trusted( // Replicas on nodes 0 and 2. void -BucketDBMetricUpdaterTest::visitBucketWith2CopiesBothTrusted( - BucketDBMetricUpdater& metricUpdater) +BucketDBMetricUpdaterTest::visitBucketWith2CopiesBothTrusted(BucketDBMetricUpdater& metricUpdater) { BucketInfo info; addNode(info, 0, 200); diff --git a/storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.cpp b/storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.cpp index fc6c957b737..dfcbbf63946 100644 --- a/storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.cpp +++ b/storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.cpp @@ -6,19 +6,26 @@ namespace storage::distributor { -BucketDBMetricUpdater::Stats::Stats() +BucketDBMetricUpdater::Stats::Stats() noexcept : _docCount(0), _byteCount(0), _tooFewCopies(0), _tooManyCopies(0), _noTrusted(0), - _totalBuckets(0) + _totalBuckets(0), + _mutable_db_mem_usage(), + _read_only_db_mem_usage(), + _minBucketReplica() { } BucketDBMetricUpdater::Stats::Stats(const Stats &rhs) = default; +BucketDBMetricUpdater::Stats & BucketDBMetricUpdater::Stats::operator=(const Stats &rhs) = default; +BucketDBMetricUpdater::Stats::Stats(Stats &&rhs) noexcept = default; +BucketDBMetricUpdater::Stats & BucketDBMetricUpdater::Stats::operator=(Stats &&rhs) noexcept = default; +BucketDBMetricUpdater::Stats::~Stats() = default; -BucketDBMetricUpdater::BucketDBMetricUpdater() +BucketDBMetricUpdater::BucketDBMetricUpdater() noexcept : _workingStats(), _lastCompleteStats(), _replicaCountingMode(ReplicaCountingMode::TRUSTED), @@ -35,8 +42,7 @@ BucketDBMetricUpdater::resetStats() } void -BucketDBMetricUpdater::visit(const BucketDatabase::Entry& entry, - uint32_t redundancy) +BucketDBMetricUpdater::visit(const BucketDatabase::Entry& entry, uint32_t redundancy) { if (entry->getNodeCount() == 0) { // We used to have an assert on >0 but that caused some crashes, see @@ -90,9 +96,7 @@ BucketDBMetricUpdater::visit(const BucketDatabase::Entry& entry, } void -BucketDBMetricUpdater::updateMinReplicationStats( - const BucketDatabase::Entry& entry, - uint32_t trustedCopies) +BucketDBMetricUpdater::updateMinReplicationStats(const BucketDatabase::Entry& entry, uint32_t trustedCopies) { auto& minBucketReplica = _workingStats._minBucketReplica; for (uint32_t i = 0; i < entry->getNodeCount(); i++) { @@ -103,9 +107,9 @@ BucketDBMetricUpdater::updateMinReplicationStats( // sync across each other. // Regardless of counting mode we still have to take the minimum // replica count across all buckets present on any given node. - const uint32_t countedReplicas( - (_replicaCountingMode == ReplicaCountingMode::TRUSTED) - ? trustedCopies : entry->getNodeCount()); + const uint32_t countedReplicas = (_replicaCountingMode == ReplicaCountingMode::TRUSTED) + ? trustedCopies + : entry->getNodeCount(); auto it = minBucketReplica.find(node); if (it == minBucketReplica.end()) { minBucketReplica[node] = countedReplicas; @@ -118,17 +122,18 @@ BucketDBMetricUpdater::updateMinReplicationStats( void BucketDBMetricUpdater::completeRound(bool resetWorkingStats) { - _lastCompleteStats = _workingStats; + _hasCompleteStats = true; if (resetWorkingStats) { + _lastCompleteStats = std::move(_workingStats); resetStats(); + } else { + _lastCompleteStats = _workingStats; } } void -BucketDBMetricUpdater::Stats::propagateMetrics( - IdealStateMetricSet& idealStateMetrics, - DistributorMetricSet& distributorMetrics) +BucketDBMetricUpdater::Stats::propagateMetrics(IdealStateMetricSet& idealStateMetrics, DistributorMetricSet& distributorMetrics) const { distributorMetrics.docsStored.set(_docCount); distributorMetrics.bytesStored.set(_byteCount); diff --git a/storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.h b/storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.h index 2edb86cbaa2..f1d655403fe 100644 --- a/storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.h +++ b/storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.h @@ -25,11 +25,12 @@ public: vespalib::MemoryUsage _mutable_db_mem_usage; vespalib::MemoryUsage _read_only_db_mem_usage; - Stats(); + Stats() noexcept; + Stats(Stats &&rhs) noexcept; + Stats & operator=(Stats &&rhs) noexcept; Stats(const Stats &rhs); - ~Stats() = default; - - Stats &operator=(const Stats &rhs) = default; + Stats & operator=(const Stats &rhs); + ~Stats(); /** * For each node N, look at all the buckets that have or should have a @@ -52,7 +53,7 @@ public: /** * Propagate state values to the appropriate metric values. */ - void propagateMetrics(IdealStateMetricSet&, DistributorMetricSet&); + void propagateMetrics(IdealStateMetricSet&, DistributorMetricSet&) const; }; using ReplicaCountingMode = vespa::config::content::core::StorDistributormanagerConfig::MinimumReplicaCountingMode; @@ -64,7 +65,7 @@ private: bool _hasCompleteStats; public: - BucketDBMetricUpdater(); + BucketDBMetricUpdater() noexcept; ~BucketDBMetricUpdater(); void setMinimumReplicaCountingMode(ReplicaCountingMode mode) noexcept { @@ -91,11 +92,11 @@ public: /** * Returns true iff completeRound() has been called at least once. */ - bool hasCompletedRound() const { + bool hasCompletedRound() const noexcept { return _hasCompleteStats; } - Stats getLastCompleteStats() const { + const Stats & getLastCompleteStats() const noexcept { return _lastCompleteStats; } |