By using childs weights for scheduling we can unlock
concurrent and decrease total time of execution.
As an example consider next variant:
Tasks A and B can't run concurrently because of node-limit.
Tasks A and C have logical dependency, and thus not concurrent.
Tasks B and C will be executed on different nodes, and doesnt
have any logical dependency.
As A and B doesnt have parents we may schedule any of this task
and logically execution will be correct, but in case if we will choose
B total time of execution will be - B + A + C, BUT
if we will select A - total time of execution may be reduced,
and will take in total - A + max(B, C).
Reviewed: https:/ /review. openstack. org/295348 /git.openstack. org/cgit/ openstack/ solar/commit/ ?id=e2cfa869d80 8c9c52d8b75bf63 e05078f16feeeb
Committed: https:/
Submitter: Jenkins
Branch: master
commit e2cfa869d808c9c 52d8b75bf63e050 78f16feeeb
Author: Dmitry Shulyak <email address hidden>
Date: Mon Mar 21 17:08:31 2016 +0200
Implement traversal based on number of childs
By using childs weights for scheduling we can unlock
concurrent and decrease total time of execution.
As an example consider next variant:
Tasks A and B can't run concurrently because of node-limit.
Tasks A and C have logical dependency, and thus not concurrent.
Tasks B and C will be executed on different nodes, and doesnt
have any logical dependency.
As A and B doesnt have parents we may schedule any of this task
and logically execution will be correct, but in case if we will choose
B total time of execution will be - B + A + C, BUT
if we will select A - total time of execution may be reduced,
and will take in total - A + max(B, C).
Change-Id: I52a6c20e8c3d72 9ed20da822f45cb ad90e51f2df
Closes-Bug: 1554105