RuiLi8080 commented on a change in pull request #3213: [STORM-3588] add
GenericResourceAwareSchedulingPriorityStrategy to accommodate generic resource
in grading topologies
URL: https://github.com/apache/storm/pull/3213#discussion_r407854697
##########
File path: storm-server/src/main/java/org/apache/storm/scheduler/Cluster.java
##########
@@ -873,20 +897,38 @@ public NormalizedResourceOffer
getNonBlacklistedClusterAvailableResources(Collec
@Override
public double getClusterTotalCpuResource() {
- double sum = 0.0;
- for (SupervisorDetails sup : supervisors.values()) {
- sum += sup.getTotalCpu();
- }
- return sum;
+ return this.totalCpuResource;
+ }
+
+ private double computeClusterCpuResource() {
+ return supervisors.values().stream()
+ .mapToDouble(SupervisorDetails::getTotalCpu)
+ .sum();
+
}
@Override
public double getClusterTotalMemoryResource() {
- double sum = 0.0;
- for (SupervisorDetails sup : supervisors.values()) {
- sum += sup.getTotalMemory();
- }
- return sum;
+ return this.totalMemoryResource;
+ }
+
+
+ private double computeClusterMemoryResource() {
+ return supervisors.values().stream()
+ .mapToDouble(SupervisorDetails::getTotalMemory)
+ .sum();
+ }
+
+ @Override
+ public Map<String, Double> getClusterTotalGenericResources() {
+ return this.totalGenericResources;
+ }
+
+ private Map<String, Double> computeClusterGenericResources() {
+ return supervisors.values().stream()
+ .map(sup -> sup.getTotalGenericResources().entrySet())
+ .flatMap(Set::stream)
+ .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
Double::sum));
Review comment:
Sorry I didn't think of a way to further simplify, could you elaborate?
`supervisors.values().stream()` will create Stream<SupervisorDetails>. I don't
how `Stream.of` can help here.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services