|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST PATCH 22/25] sg-report-host-history: Move per-row endedq query into per-host transaction
No substantial change, but reduces the work done in the main
transaction.
Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
sg-report-host-history | 46 ++++++++++++++++++++++++----------------------
1 file changed, 24 insertions(+), 22 deletions(-)
diff --git a/sg-report-host-history b/sg-report-host-history
index bab636e..cd9ec61 100755
--- a/sg-report-host-history
+++ b/sg-report-host-history
@@ -122,29 +122,12 @@ END
push @params, scalar keys %hosts;
- our $endedq //= db_prepare(<<END);
- SELECT finished, testid, status AS laststepstatus
- FROM steps
- WHERE flight=? AND job=? AND finished IS NOT NULL
- ORDER BY finished DESC
- LIMIT 1
-END
-
$runvarq->execute(@params);
print DEBUG "FIRST PASS\n";
while (my $jr= $runvarq->fetchrow_hashref()) {
print DEBUG "JOB $jr->{flight}.$jr->{job} ";
-
- my $endedrow = jobquery($endedq, $jr);
- if (!$endedrow) {
- print DEBUG "no-finished\n";
- next;
- }
- print DEBUG join " ", map { $endedrow->{$_} } sort keys %$endedrow;
- print DEBUG ".\n";
-
- push @{ $hosts{$jr->{val}} }, { %$jr, %$endedrow };
+ push @{ $hosts{$jr->{val}} }, $jr;
}
}
@@ -173,6 +156,14 @@ sub reporthost ($) {
print H "</tr>\n";
+ our $endedq //= db_prepare(<<END);
+ SELECT finished, testid, status AS laststepstatus
+ FROM steps
+ WHERE flight=? AND job=? AND finished IS NOT NULL
+ ORDER BY finished DESC
+ LIMIT 1
+END
+
our $infoq //= db_prepare(<<END);
SELECT blessing, branch, intended, status
FROM flights
@@ -189,18 +180,29 @@ END
LIMIT 1
END
+ my $inrows = $hosts{$hostname};
+ print DEBUG "FOUND ", (scalar @$inrows), " ROWS for $hostname\n";
+
my @rows;
- @rows = @{ $hosts{$hostname} };
+ foreach my $jr (@$inrows) {
+ print DEBUG "JOB $jr->{flight}.$jr->{job}\n";
- print DEBUG "FOUND ", (scalar @rows), " ROWS for $hostname\n";
+ my $endedrow = jobquery($endedq, $jr);
+ if (!$endedrow) {
+ print DEBUG "no-finished\n";
+ next;
+ }
+ print DEBUG join " ", map { $endedrow->{$_} } sort keys %$endedrow;
+ print DEBUG ".\n";
+
+ push @rows, { %$jr, %$endedrow };
+ }
@rows = sort { $b->{finished} <=> $a->{finished} } @rows;
$#rows = $limit-1 if @rows > $limit;
my $alternate = 0;
foreach my $jr (@rows) {
- print DEBUG "JOB $jr->{flight}.$jr->{job}\n";
-
my $ir = jobquery($infoq, $jr);
my $ar = jobquery($allocdq, $jr);
--
1.7.10.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |