> list of assignments calculated by the scheduler?

1. earlier in this PR it was calculated by a RoundRobinScheduler only but then 
we decided to remove heartbeat logic out from 
Scheduler-Impl(RoundRobinScheduler) and move it to SchedulerManager as this 
logic will be same across different Scheduler-implementation.
2. `getUnassignedFunctionInstances(..)` already iterates through all list of 
instances, current-assignments and prepares list of unassignment instances so, 
scheduler can schedule it. so, if we just skip it heartbeat function in that 
call then it requires to iterate to the `allInstance` (`O(n)`)  list again to 
find out list of heart-beat function again.
So, to optimize it , we are adding heartbeat function to assignment-list in the 
same iteration and pass the same result-list to the scheduler so, scheduler can 
add new assignment to the list. I don't think it will confuse the interface 
because, if caller (SchedulerManager) is modifying and sharing the 
result-assignment-list then it can be passed to the implementation-scheduler 
where they can add more assignments.

[ Full content available at: https://github.com/apache/pulsar/pull/2613 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to