From eb6fc9d3ae00028caff6543a0dc93fb40eef01a5 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Fri, 18 Aug 2023 11:30:24 +0000 Subject: Put map lookup in one place. --- .../maintenance/node_maintenance_stats_tracker.cpp | 40 ++++++---------------- .../maintenance/node_maintenance_stats_tracker.h | 29 ++++++++++++---- 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; -- cgit v1.2.3