The new PIM architecture introduces the concept of NegletTolerance: i.e. each node must be visited by the CP within a given amount of time. To keep track of this time and decide the migration order, it is necessary to keep an updated NegletToleranceList inside the MigrationScheduler. This list will be sorted from the node the CP would like to visit sooner to the one in would like to visit later.
As for now, we think the NegletToleranceList will be something like this:
nodeUUID + currentTimeout + assignedTimeout
nodeUUIDis the unique node identifier
currenTimeoutis the time left to visit that node
assignedTimeoutis the maximum time between two occurences of the CP
Every time the CP visits a node, the
currentTimeout value will be replaced with the
assignedTimeout value, and the list will be reordered.
assignedTimeout will be node-type dependent at the startup, but the Runtime or the CP will be able to change it at any time.