aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-08-08 20:34:40 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-08-08 20:34:40 +0000
commitb479f5b2a572a8a75cf14ca12016b38f2ff05b76 (patch)
tree76a45b3b0e4de6dad2f664c43b9f3c350eb113a6
parentb0e64927bc95abe3587262084dd57fbb3ef038e4 (diff)
Move where possible
-rw-r--r--storage/src/tests/distributor/bucketdbmetricupdatertest.cpp16
-rw-r--r--storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.cpp35
-rw-r--r--storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.h17
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;
}