summaryrefslogtreecommitdiffstats
path: root/storage/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-08-08 21:19:54 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-08-08 21:19:54 +0000
commite5a0b4377d45eaf4a1f999b64addb28e8388e847 (patch)
tree76115f757c75a8dfdf27f9e77174a5d4346564c5 /storage/src
parentb479f5b2a572a8a75cf14ca12016b38f2ff05b76 (diff)
Unify on a single definition of MinReplicaMap
Diffstat (limited to 'storage/src')
-rw-r--r--storage/src/tests/distributor/bucketdbmetricupdatertest.cpp2
-rw-r--r--storage/src/tests/distributor/distributor_host_info_reporter_test.cpp4
-rw-r--r--storage/src/tests/distributor/top_level_distributor_test.cpp4
-rw-r--r--storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.h11
-rw-r--r--storage/src/vespa/storage/distributor/distributor_host_info_reporter.cpp15
-rw-r--r--storage/src/vespa/storage/distributor/distributor_stripe.cpp2
-rw-r--r--storage/src/vespa/storage/distributor/distributor_stripe.h2
-rw-r--r--storage/src/vespa/storage/distributor/min_replica_provider.cpp3
-rw-r--r--storage/src/vespa/storage/distributor/min_replica_provider.h9
-rw-r--r--storage/src/vespa/storage/distributor/top_level_distributor.cpp4
-rw-r--r--storage/src/vespa/storage/distributor/top_level_distributor.h2
11 files changed, 26 insertions, 32 deletions
diff --git a/storage/src/tests/distributor/bucketdbmetricupdatertest.cpp b/storage/src/tests/distributor/bucketdbmetricupdatertest.cpp
index ab4ff881d90..4d04e3ca51a 100644
--- a/storage/src/tests/distributor/bucketdbmetricupdatertest.cpp
+++ b/storage/src/tests/distributor/bucketdbmetricupdatertest.cpp
@@ -18,7 +18,7 @@ struct BucketDBMetricUpdaterTest : Test {
void visitBucketWith2CopiesBothTrusted(BucketDBMetricUpdater& metricUpdater);
void visitBucketWith1Copy(BucketDBMetricUpdater& metricUpdater);
- using NodeToReplicasMap = std::unordered_map<uint16_t, uint32_t>;
+ using NodeToReplicasMap = MinReplicaMap;
NodeToReplicasMap replicaStatsOf(BucketDBMetricUpdater& metricUpdater);
BucketDBMetricUpdaterTest();
diff --git a/storage/src/tests/distributor/distributor_host_info_reporter_test.cpp b/storage/src/tests/distributor/distributor_host_info_reporter_test.cpp
index 6dfab5abc21..a72dfec2d94 100644
--- a/storage/src/tests/distributor/distributor_host_info_reporter_test.cpp
+++ b/storage/src/tests/distributor/distributor_host_info_reporter_test.cpp
@@ -14,7 +14,7 @@ namespace storage::distributor {
using End = vespalib::JsonStream::End;
using File = vespalib::File;
-using MinReplicaStats = std::unordered_map<uint16_t, uint32_t>;
+using MinReplicaStats = MinReplicaMap;
using Object = vespalib::JsonStream::Object;
using PerNodeBucketSpacesStats = BucketSpacesStatsProvider::PerNodeBucketSpacesStats;
using BucketSpacesStats = BucketSpacesStatsProvider::BucketSpacesStats;
@@ -36,7 +36,7 @@ struct MockedMinReplicaProvider : MinReplicaProvider
MinReplicaStats minReplica;
~MockedMinReplicaProvider() override;
- std::unordered_map<uint16_t, uint32_t> getMinReplica() const override {
+ MinReplicaMap getMinReplica() const override {
return minReplica;
}
};
diff --git a/storage/src/tests/distributor/top_level_distributor_test.cpp b/storage/src/tests/distributor/top_level_distributor_test.cpp
index dad6f477d83..94f8821f9c8 100644
--- a/storage/src/tests/distributor/top_level_distributor_test.cpp
+++ b/storage/src/tests/distributor/top_level_distributor_test.cpp
@@ -92,7 +92,7 @@ struct TopLevelDistributorTest : Test, TopLevelDistributorTestUtil {
return _distributor->getBucketSpacesStats();
}
- std::unordered_map<uint16_t, uint32_t> distributor_min_replica_stats() {
+ MinReplicaMap distributor_min_replica_stats() {
return _distributor->getMinReplica();
}
@@ -504,7 +504,7 @@ void assert_invalid_bucket_stats_for_all_spaces(
ASSERT_FALSE(space_iter->second.valid());
}
-void assert_min_replica_stats_zeroed(const std::unordered_map<uint16_t, uint32_t>& stats, uint16_t node_index) {
+void assert_min_replica_stats_zeroed(const MinReplicaMap & stats, uint16_t node_index) {
auto iter = stats.find(node_index);
ASSERT_TRUE(iter != stats.cend());
EXPECT_EQ(iter->second, 0);
diff --git a/storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.h b/storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.h
index f1d655403fe..366c2f2dc41 100644
--- a/storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.h
+++ b/storage/src/vespa/storage/distributor/bucketdb/bucketdbmetricupdater.h
@@ -2,10 +2,11 @@
#pragma once
+#include <vespa/storage/distributor/min_replica_provider.h>
#include <vespa/storage/bucketdb/bucketdatabase.h>
#include <vespa/storage/config/config-stor-distributormanager.h>
#include <vespa/vespalib/util/memoryusage.h>
-#include <unordered_map>
+#include <vespa/vespalib/stllike/hash_map.h>
namespace storage::distributor {
@@ -48,7 +49,7 @@ public:
* Note: If no buckets have been found for a node, that node is not in
* this map.
*/
- std::unordered_map<uint16_t, uint32_t> _minBucketReplica;
+ MinReplicaMap _minBucketReplica;
/**
* Propagate state values to the appropriate metric values.
@@ -59,10 +60,10 @@ public:
using ReplicaCountingMode = vespa::config::content::core::StorDistributormanagerConfig::MinimumReplicaCountingMode;
private:
- Stats _workingStats;
- Stats _lastCompleteStats;
+ Stats _workingStats;
+ Stats _lastCompleteStats;
ReplicaCountingMode _replicaCountingMode;
- bool _hasCompleteStats;
+ bool _hasCompleteStats;
public:
BucketDBMetricUpdater() noexcept;
diff --git a/storage/src/vespa/storage/distributor/distributor_host_info_reporter.cpp b/storage/src/vespa/storage/distributor/distributor_host_info_reporter.cpp
index bb7e573c980..46c9a526a8d 100644
--- a/storage/src/vespa/storage/distributor/distributor_host_info_reporter.cpp
+++ b/storage/src/vespa/storage/distributor/distributor_host_info_reporter.cpp
@@ -3,15 +3,9 @@
#include "bucket_spaces_stats_provider.h"
#include "distributor_host_info_reporter.h"
#include "min_replica_provider.h"
-#include "pendingmessagetracker.h"
-
#include <set>
-using std::set;
-using std::unordered_map;
-
-namespace storage {
-namespace distributor {
+namespace storage::distributor {
using BucketSpacesStats = BucketSpacesStatsProvider::BucketSpacesStats;
using PerNodeBucketSpacesStats = BucketSpacesStatsProvider::PerNodeBucketSpacesStats;
@@ -48,10 +42,10 @@ writeBucketSpacesStats(vespalib::JsonStream& stream,
void
outputStorageNodes(vespalib::JsonStream& output,
- const unordered_map<uint16_t, uint32_t>& minReplica,
+ const MinReplicaMap & minReplica,
const PerNodeBucketSpacesStats& bucketSpacesStats)
{
- set<uint16_t> nodes;
+ std::set<uint16_t> nodes;
for (const auto& element : minReplica) {
nodes.insert(element.first);
}
@@ -104,6 +98,5 @@ DistributorHostInfoReporter::report(vespalib::JsonStream& output)
output << End();
}
-} // distributor
-} // storage
+}
diff --git a/storage/src/vespa/storage/distributor/distributor_stripe.cpp b/storage/src/vespa/storage/distributor/distributor_stripe.cpp
index 616fd77fdd7..1226feaeb6a 100644
--- a/storage/src/vespa/storage/distributor/distributor_stripe.cpp
+++ b/storage/src/vespa/storage/distributor/distributor_stripe.cpp
@@ -562,7 +562,7 @@ void DistributorStripe::startExternalOperations() {
_fetchedMessages.clear();
}
-std::unordered_map<uint16_t, uint32_t>
+MinReplicaMap
DistributorStripe::getMinReplica() const
{
std::lock_guard guard(_metricLock);
diff --git a/storage/src/vespa/storage/distributor/distributor_stripe.h b/storage/src/vespa/storage/distributor/distributor_stripe.h
index 801efa0ff73..faf545d4b3a 100644
--- a/storage/src/vespa/storage/distributor/distributor_stripe.h
+++ b/storage/src/vespa/storage/distributor/distributor_stripe.h
@@ -219,7 +219,7 @@ private:
/**
* Return a copy of the latest min replica data, see MinReplicaProvider.
*/
- std::unordered_map<uint16_t, uint32_t> getMinReplica() const override;
+ MinReplicaMap getMinReplica() const override;
PerNodeBucketSpacesStats getBucketSpacesStats() const override;
diff --git a/storage/src/vespa/storage/distributor/min_replica_provider.cpp b/storage/src/vespa/storage/distributor/min_replica_provider.cpp
index f503672af39..52780b99948 100644
--- a/storage/src/vespa/storage/distributor/min_replica_provider.cpp
+++ b/storage/src/vespa/storage/distributor/min_replica_provider.cpp
@@ -5,8 +5,7 @@
namespace storage::distributor {
void
-merge_min_replica_stats(std::unordered_map<uint16_t, uint32_t>& dest,
- const std::unordered_map<uint16_t, uint32_t>& src)
+merge_min_replica_stats(MinReplicaMap & dest, const MinReplicaMap & src)
{
for (const auto& entry : src) {
auto node_index = entry.first;
diff --git a/storage/src/vespa/storage/distributor/min_replica_provider.h b/storage/src/vespa/storage/distributor/min_replica_provider.h
index a4374b906fe..456cf1c289d 100644
--- a/storage/src/vespa/storage/distributor/min_replica_provider.h
+++ b/storage/src/vespa/storage/distributor/min_replica_provider.h
@@ -1,11 +1,13 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
-#include <stdint.h>
+#include <cstdint>
#include <unordered_map>
namespace storage::distributor {
+using MinReplicaMap = std::unordered_map<uint16_t, uint32_t>;
+
class MinReplicaProvider
{
public:
@@ -17,11 +19,10 @@ public:
* Can be called at any time after registration from another thread context
* and the call must thus be thread safe and data race free.
*/
- virtual std::unordered_map<uint16_t, uint32_t> getMinReplica() const = 0;
+ virtual MinReplicaMap getMinReplica() const = 0;
};
-void merge_min_replica_stats(std::unordered_map<uint16_t, uint32_t>& dest,
- const std::unordered_map<uint16_t, uint32_t>& src);
+void merge_min_replica_stats(MinReplicaMap & dest, const MinReplicaMap & src);
}
diff --git a/storage/src/vespa/storage/distributor/top_level_distributor.cpp b/storage/src/vespa/storage/distributor/top_level_distributor.cpp
index 80c096135fa..7455b7891db 100644
--- a/storage/src/vespa/storage/distributor/top_level_distributor.cpp
+++ b/storage/src/vespa/storage/distributor/top_level_distributor.cpp
@@ -340,10 +340,10 @@ TopLevelDistributor::propagate_default_distribution_thread_unsafe(
}
}
-std::unordered_map<uint16_t, uint32_t>
+MinReplicaMap
TopLevelDistributor::getMinReplica() const
{
- std::unordered_map<uint16_t, uint32_t> result;
+ MinReplicaMap result;
for (const auto& stripe : _stripes) {
merge_min_replica_stats(result, stripe->getMinReplica());
}
diff --git a/storage/src/vespa/storage/distributor/top_level_distributor.h b/storage/src/vespa/storage/distributor/top_level_distributor.h
index aa3a7b3655d..6a4e95b0e00 100644
--- a/storage/src/vespa/storage/distributor/top_level_distributor.h
+++ b/storage/src/vespa/storage/distributor/top_level_distributor.h
@@ -142,7 +142,7 @@ private:
/**
* Return a copy of the latest min replica data, see MinReplicaProvider.
*/
- std::unordered_map<uint16_t, uint32_t> getMinReplica() const override;
+ MinReplicaMap getMinReplica() const override;
PerNodeBucketSpacesStats getBucketSpacesStats() const override;
SimpleMaintenanceScanner::PendingMaintenanceStats pending_maintenance_stats() const;