Github user srdo commented on a diff in the pull request:

    https://github.com/apache/storm/pull/2764#discussion_r209044589
  
    --- Diff: 
storm-server/src/main/java/org/apache/storm/daemon/nimbus/Nimbus.java ---
    @@ -1984,11 +2074,13 @@ private int fragmentedCpu() {
             Cluster cluster = new Cluster(inimbus, supervisors, 
topoToSchedAssignment, topologies, conf);
             cluster.setStatusMap(idToSchedStatus.get());
     
    -        long beforeSchedule = System.currentTimeMillis();
    +        schedulingStartTime.set(Time.nanoTime());
             scheduler.schedule(topologies, cluster);
    -        long scheduleTimeElapsedMs = System.currentTimeMillis() - 
beforeSchedule;
    -        LOG.debug("Scheduling took {} ms for {} topologies", 
scheduleTimeElapsedMs, topologies.getTopologies().size());
    -        scheduleTopologyTimeMs.update(scheduleTimeElapsedMs);
    +        //Will compiler optimize the order of evalutation and cause race 
condition?
    --- End diff --
    
    Right, that makes sense. I don't think it requires reordering though, the 
sequence you posted can happen without the compiler reordering anything.
    
    I don't think it really hurts anything to have this race, but maybe we 
should consider removing the longest update in the gauge. Unless the scheduler 
is outright hanging, I'm not sure what the value is for us to report a partial 
measurement like that? 


---

Reply via email to