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.
---