Speed up findBuildDependencyInQueue
[?]
Jun 7, 2013, 7:51 PM
TPSCSZKXKQAMSLMRACXSHWQ4OY7HPSJSJ4KTJY6HLHZQAJ5MDRZACDependencies
- [2]
YTIDBFGUDrop unused "disabled" columns - [3]
7YBYT2LQ - [4]
DQD7JMSU* Fix the terminology. - [5]
OV7F5M3EMerge branch 'queue-17' - [6]
YEXD7CBKFix findBuildDependencyInQueue - [*]
NREF6YOA* Don't start more builds concurrently than allowed for each system
Change contents
- replacement in src/script/hydra-queue-runner at line 54
my ($build) = @_;my ($buildsByDrv, $build) = @_; - replacement in src/script/hydra-queue-runner at line 57
return $db->resultset('Builds')->search({ drvpath => [ @deps ], finished => 0, enabled => 1 },{ join => ['project'], rows => 1 })->single;foreach my $d (@deps) {my $b = $buildsByDrv->{$d};next unless defined $b;return $db->resultset('Builds')->find($b);}return undef; - edit in src/script/hydra-queue-runner at line 83[8.23][8.23]
# Cache scheduled by derivation path to speed up# findBuildDependencyInQueue.my $buildsByDrv = {};$buildsByDrv->{$_->drvpath} = $_->idforeach $db->resultset('Builds')->search({ finished => 0, enabled => 1 }, { join => ['project'] }); - replacement in src/script/hydra-queue-runner at line 121
while (my $dep = findBuildDependencyInQueue($build)) {while (my $dep = findBuildDependencyInQueue($buildsByDrv, $build)) {