Github user revans2 commented on a diff in the pull request:
https://github.com/apache/storm/pull/2647#discussion_r186756808
--- Diff:
storm-server/src/main/java/org/apache/storm/scheduler/Cluster.java ---
@@ -763,6 +773,7 @@ public void setAssignments(
assertValidTopologyForModification(assignment.getTopologyId());
}
assignments.clear();
+ totalResourcesPerNodeCache.clear();
--- End diff --
I tried that, but it didn't have the performance boost I was hoping for.
The vast majority of the performance problem came from recomputing the value
each time we wanted to sort, with for GRAS is once per executor. So without
the cache for a large topology we were recomputing things hundreds of thousands
of times. With the cache it is only how many nodes are in the cluster, which
ends up being relatively small. In reality the noise between runs drowned out
any improvement, so I opted to not do the change.
---