diff options
author | Øyvind Grønnesby <oyving@yahooinc.com> | 2023-02-28 11:01:40 +0100 |
---|---|---|
committer | Øyvind Grønnesby <oyving@yahooinc.com> | 2023-02-28 11:01:40 +0100 |
commit | 3c325c2ee25bc1d39190dfe7ee5b43eadc6225c0 (patch) | |
tree | 111d33e1d857dcdf3885220e2da4b50efc8964ca /controller-server | |
parent | 3204ecd71bed82fe25bbc50688aa5516b55b989a (diff) |
Consider major version in node -> snapshot conversion
Diffstat (limited to 'controller-server')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java index 059986072f3..26edd210075 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java @@ -201,10 +201,11 @@ public class ResourceMeterMaintainer extends ControllerMaintainer { // Grouping by ApplicationId -> Architecture -> ResourceSnapshot .collect(Collectors.groupingBy(node -> node.owner().get(), - groupSnapshotsByArchitecture(zoneId))) + groupSnapshotsByArchitectureAndMajorVersion(zoneId))) .values() .stream() - .flatMap(list -> list.values().stream()) + .flatMap(byArch -> byArch.values().stream()) + .flatMap(byMajor -> byMajor.values().stream()) .toList(); } @@ -284,19 +285,22 @@ public class ResourceMeterMaintainer extends ControllerMaintainer { )); } - private Collector<Node, ?, Map<NodeResources.Architecture, ResourceSnapshot>> groupSnapshotsByArchitecture(ZoneId zoneId) { - return Collectors.collectingAndThen( - Collectors.groupingBy(node -> node.resources().architecture()), - convertNodeListToResourceSnapshot(zoneId) - ); + private Collector<Node, ?, Map<NodeResources.Architecture, Map<Integer, ResourceSnapshot>>> groupSnapshotsByArchitectureAndMajorVersion(ZoneId zoneId) { + return Collectors.groupingBy( + (Node node) -> node.resources().architecture(), + Collectors.collectingAndThen( + Collectors.groupingBy( + (Node node) -> node.currentVersion().getMajor(), + Collectors.toList()), + convertNodeListToResourceSnapshot(zoneId))); } - private Function<Map<NodeResources.Architecture, List<Node>>, Map<NodeResources.Architecture, ResourceSnapshot>> convertNodeListToResourceSnapshot(ZoneId zoneId) { - return nodeMap -> nodeMap.entrySet() - .stream() - .collect(Collectors.toMap( - Map.Entry::getKey, - entry -> ResourceSnapshot.from(entry.getValue(), clock.instant(), zoneId)) - ); + private Function<Map<Integer, List<Node>>, Map<Integer, ResourceSnapshot>> convertNodeListToResourceSnapshot(ZoneId zoneId) { + return nodesByMajor -> { + return nodesByMajor.entrySet().stream() + .collect(Collectors.toMap( + entry -> entry.getKey(), + entry -> ResourceSnapshot.from(entry.getValue(), clock.instant(), zoneId))); + }; } } |