aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-08-18 11:30:24 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-08-18 12:25:41 +0000
commiteb6fc9d3ae00028caff6543a0dc93fb40eef01a5 (patch)
treecdf5bc4c2feac9b453efdf9cec253d737bb636d2
parent2946d0246f693df5e0a5639916446d472c9e54d9 (diff)
Put map lookup in one place.
-rw-r--r--storage/src/vespa/storage/distributor/maintenance/node_maintenance_stats_tracker.cpp40
-rw-r--r--storage/src/vespa/storage/distributor/maintenance/node_maintenance_stats_tracker.h29
2 files changed, 33 insertions, 36 deletions
diff --git a/storage/src/vespa/storage/distributor/maintenance/node_maintenance_stats_tracker.cpp b/storage/src/vespa/storage/distributor/maintenance/node_maintenance_stats_tracker.cpp
index 592d92940d6..62ba3742627 100644
--- a/storage/src/vespa/storage/distributor/maintenance/node_maintenance_stats_tracker.cpp
+++ b/storage/src/vespa/storage/distributor/maintenance/node_maintenance_stats_tracker.cpp
@@ -23,38 +23,13 @@ merge_bucket_spaces_stats(NodeMaintenanceStatsTracker::BucketSpacesStats& dest,
}
-void
-NodeMaintenanceStatsTracker::incMovingOut(uint16_t node, document::BucketSpace bucketSpace) {
- ++_node_stats[node][bucketSpace].movingOut;
- ++_total_stats.movingOut;
+NodeMaintenanceStats &
+NodeMaintenanceStatsTracker::stats(uint16_t node, document::BucketSpace bucketSpace) {
+ return _node_stats[node][bucketSpace];
}
-void
-NodeMaintenanceStatsTracker::incSyncing(uint16_t node, document::BucketSpace bucketSpace) {
- ++_node_stats[node][bucketSpace].syncing;
- ++_total_stats.syncing;
-}
-
-void
-NodeMaintenanceStatsTracker::incCopyingIn(uint16_t node, document::BucketSpace bucketSpace) {
- ++_node_stats[node][bucketSpace].copyingIn;
- ++_total_stats.copyingIn;
-}
-
-void
-NodeMaintenanceStatsTracker::incCopyingOut(uint16_t node, document::BucketSpace bucketSpace) {
- ++_node_stats[node][bucketSpace].copyingOut;
- ++_total_stats.copyingOut;
-}
-
-void
-NodeMaintenanceStatsTracker::NodeMaintenanceStatsTracker::incTotal(uint16_t node, document::BucketSpace bucketSpace) {
- ++_node_stats[node][bucketSpace].total;
- ++_total_stats.total;
-}
-
-const NodeMaintenanceStats&
-NodeMaintenanceStatsTracker::forNode(uint16_t node, document::BucketSpace bucketSpace) const {
+const NodeMaintenanceStats &
+NodeMaintenanceStatsTracker::stats(uint16_t node, document::BucketSpace bucketSpace) const noexcept {
auto nodeItr = _node_stats.find(node);
if (nodeItr != _node_stats.end()) {
auto bucketSpaceItr = nodeItr->second.find(bucketSpace);
@@ -65,6 +40,11 @@ NodeMaintenanceStatsTracker::forNode(uint16_t node, document::BucketSpace bucket
return _emptyNodeMaintenanceStats;
}
+const NodeMaintenanceStats&
+NodeMaintenanceStatsTracker::forNode(uint16_t node, document::BucketSpace bucketSpace) const noexcept {
+ return stats(node, bucketSpace);
+}
+
bool
NodeMaintenanceStatsTracker::operator==(const NodeMaintenanceStatsTracker& rhs) const noexcept {
return ((_node_stats == rhs._node_stats) &&
diff --git a/storage/src/vespa/storage/distributor/maintenance/node_maintenance_stats_tracker.h b/storage/src/vespa/storage/distributor/maintenance/node_maintenance_stats_tracker.h
index 84705fbca9d..1d3423b2716 100644
--- a/storage/src/vespa/storage/distributor/maintenance/node_maintenance_stats_tracker.h
+++ b/storage/src/vespa/storage/distributor/maintenance/node_maintenance_stats_tracker.h
@@ -61,6 +61,8 @@ private:
static const NodeMaintenanceStats _emptyNodeMaintenanceStats;
+ NodeMaintenanceStats & stats(uint16_t node, document::BucketSpace bucketSpace);
+ const NodeMaintenanceStats & stats(uint16_t node, document::BucketSpace bucketSpace) const noexcept;
public:
NodeMaintenanceStatsTracker() noexcept;
NodeMaintenanceStatsTracker(NodeMaintenanceStatsTracker &&) noexcept;
@@ -70,15 +72,30 @@ public:
void reset(size_t nodes);
size_t numNodes() const { return _node_stats.size(); }
- void incMovingOut(uint16_t node, document::BucketSpace bucketSpace);
+ void incMovingOut(uint16_t node, document::BucketSpace bucketSpace) {
+ ++stats(node, bucketSpace).movingOut;
+ ++_total_stats.movingOut;
+ }
- void incSyncing(uint16_t node, document::BucketSpace bucketSpace);
+ void incSyncing(uint16_t node, document::BucketSpace bucketSpace) {
+ ++stats(node, bucketSpace).syncing;
+ ++_total_stats.syncing;
+ }
- void incCopyingIn(uint16_t node, document::BucketSpace bucketSpace);
+ void incCopyingIn(uint16_t node, document::BucketSpace bucketSpace) {
+ ++stats(node, bucketSpace).copyingIn;
+ ++_total_stats.copyingIn;
+ }
- void incCopyingOut(uint16_t node, document::BucketSpace bucketSpace);
+ void incCopyingOut(uint16_t node, document::BucketSpace bucketSpace) {
+ ++stats(node, bucketSpace).copyingOut;
+ ++_total_stats.copyingOut;
+ }
- void incTotal(uint16_t node, document::BucketSpace bucketSpace);
+ void incTotal(uint16_t node, document::BucketSpace bucketSpace) {
+ ++stats(node, bucketSpace).total;
+ ++_total_stats.total;
+ }
void update_observed_time_since_last_gc(vespalib::duration time_since_gc) noexcept {
_max_observed_time_since_last_gc = std::max(time_since_gc, _max_observed_time_since_last_gc);
@@ -88,7 +105,7 @@ public:
* Returned statistics for a given node index and bucket space, or all zero statistics
* if none have been recorded yet
*/
- const NodeMaintenanceStats& forNode(uint16_t node, document::BucketSpace bucketSpace) const;
+ const NodeMaintenanceStats& forNode(uint16_t node, document::BucketSpace bucketSpace) const noexcept;
const PerNodeStats& perNodeStats() const noexcept {
return _node_stats;