Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagesql
Algorithm incremental-rebalancing

Input Set of Tasks,
	  Set of Instances,
      Set of Workers,

      Where each worker contains:
		Set of active Tasks,
		Set of standby Tasks,
		owned by which instance

Main loop:Function
	Separate out Tasks into stateful tasksbucket and stateless tasksbucket
	
	Assign Stateful active tasks:
		To instances with learner tasks that indicates "ready"
		To previous owners
		To unready learner tasks owners
  	 	To instances with standby tasks
		To resource available instances

	Assign Stateless tasks:
		To previous owners
  	 	To instances with standby tasks
		To resource available instances

 	Assign learner tasks:
		To previous owners (no half way bounce at least in the first version)
		To new coming instances with abundant resource (first version)
		Move tasks out of heaviest loaded instances first 


	Assign standby tasks:
		To instances without matching active tasks
			To previous active task owners
		To resource available instances
		Based on num.standby.task config, this could take multiple rounds

Output Finalized Task Assignment

...