[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [OSSTEST PATCH 8/9] ts-hosts-allocate-Executive: Redo variation_bonus scoring



Use a logarithmic scale.  Cap the bonus at 12h rather than 5d/30 = 4h.
When we have previously failed, make sure we apply a reverse bonus,
rather than a penalty.

Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
 ts-hosts-allocate-Executive |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/ts-hosts-allocate-Executive b/ts-hosts-allocate-Executive
index 24f78d3..590fe98 100755
--- a/ts-hosts-allocate-Executive
+++ b/ts-hosts-allocate-Executive
@@ -537,19 +537,25 @@ sub hid_recurse ($$) {
     if ($jobinfo->{recipe} =~ m/build/) {
         $variation_age= 0;
        $duration_for_cost= $duration + $duration_rightaway_adjust;
-    } elsif ($variation_age > 5*86400) {
-       $variation_age= 5*86400;
     }
 
+    my $log_variation_age = log(1+$variation_age/86400);
+    my $variation_bonus = $log_variation_age * 3600*2;
+    my $max_variation_bonus = 12*86400;
+    $variation_bonus=$max_variation_bonus
+       if $variation_bonus>$max_variation_bonus;
+
     my $cost= $start_time
        + $duration_for_cost
         - ($previously_failed      ==@hids ? 366*86400 :
           $previously_failed_equiv==@hids ? 365*86400 :
           0)
-        + ($previously_failed ? + $variation_age * 10 : - $variation_age / 30)
+        + ($previously_failed || $previously_failed_equiv
+          ? (-$max_variation_bonus+$variation_bonus) : -$variation_bonus)
        - $share_reuse * 10000;
     
     print DEBUG "$dbg FINAL start=$start_time va=$variation_age".
+       " variation_bonus=$variation_bonus".
         " previously_failed=$previously_failed".
        " previously_failed_equiv=$previously_failed_equiv cost=$cost\n";
 
-- 
1.7.10.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.