impzx created STORM-341:
---------------------------

             Summary: assignment reassignment
                 Key: STORM-341
                 URL: https://issues.apache.org/jira/browse/STORM-341
             Project: Apache Storm (Incubating)
          Issue Type: Bug
    Affects Versions: 0.9.2-incubating
            Reporter: impzx


I met a problem: in nimubs code, compute-topology->scheduler-assignment 
function,Will convert clojure's map to a Java map,but this will result in order 
change, leading to the assignment reassignment
I add log to this
--------------------------------------code1
 _ (log-message "to java objec" executor->slot)
_ (log-message "-------------------------")]]
{tid (SchedulerAssignmentImpl. tid executor->slot)})))

--------------------------------------code2
 topology->scheduler-assignment (compute-topology->scheduler-assignment nimbus
                                                                               
existing-assignments
                                                                               
topology->alive-executors)
 _ (log-message "end of compute " topology->scheduler-assignment)
--------------------------------------code3 , I implement 
SchedulerAssignmentImpl toString code
  @Override
    public String toString() {
        String info = "";
        if(this.getExecutorToSlot() != null) {
                for(Entry<ExecutorDetails, WorkerSlot> entry : 
this.getExecutorToSlot().entrySet()) {
                        info += "[" + entry.getKey().getStartTask() + "," + 
entry.getKey().getEndTask() + "]";
                }
        }
        return info;
    }

--------------------------------------------> print log

2014-06-05 16:07:26 nimbus [INFO] to java objec{#<ExecutorDetails [3, 3]> 
#<WorkerSlot d631169e-8bc1-4768-98b0-6c1a0b55c355:6710:1>, #<ExecutorDetails 
[6, 6]> #<WorkerSlot d631169e-8bc1-4768-98b0-6c1a0b55c355:6710:1>, 
#<ExecutorDetails [5, 5]> #<WorkerSlot 
d631169e-8bc1-4768-98b0-6c1a0b55c355:6710:1>, #<ExecutorDetails [4, 4]> 
#<WorkerSlot d631169e-8bc1-4768-98b0-6c1a0b55c355:6710:1>, #<ExecutorDetails 
[2, 2]> #<WorkerSlot d631169e-8bc1-4768-98b0-6c1a0b55c355:6710:1>, 
#<ExecutorDetails [1, 1]> #<WorkerSlot 
d631169e-8bc1-4768-98b0-6c1a0b55c355:6710:1>}
2014-06-05 16:07:26 nimbus [INFO] -------------------------
2014-06-05 16:07:26 nimbus [INFO] end of compute {"case_1#1-1-1401955622" 
#<SchedulerAssignmentImpl [6,6][5,5][3,3][4,4][2,2][1,1]>}

-------------------------------------------------------------------------------
i think we could fix this question add this code to function changed-executors
;        executor->node+port (if executor->node+port (sort executor->node+port) 
nil)
;        new-executor->node+port (if new-executor->node+port (sort 
new-executor->node+port) nil)



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to