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