From: Steinar H. Gunderson Date: Wed, 30 May 2012 19:36:05 +0000 (+0200) Subject: Load the covariance table before doing anything else, since that process can happen... X-Git-Url: https://git.sesse.net/?p=wloh;a=commitdiff_plain;h=d3a1959c7228dff1c065f18d5877558a0fe84734 Load the covariance table before doing anything else, since that process can happen without a lock on anything the frontend needs, which means we can block the frontend for shorter. --- diff --git a/train.pl b/train.pl index f104b70..084f84b 100755 --- a/train.pl +++ b/train.pl @@ -96,6 +96,14 @@ my @aux_params = (); train_model($tmpnam, \@ratings, \@covariances, \@aux_params); unlink($tmpnam); +$dbh->do('CREATE TABLE new_covariance ( player1 smallint NOT NULL, player2 smallint NOT NULL, cov float NOT NULL )'); +$dbh->do('COPY new_covariance ( player1, player2, cov ) FROM STDIN'); +$dbh->pg_putcopydata(join("\n", @covariances)); +$dbh->pg_putcopyend(); +$dbh->do('ALTER TABLE new_covariance ADD PRIMARY KEY ( player1, player2 );'); +$dbh->do('DROP TABLE IF EXISTS covariance'); +$dbh->do('ALTER TABLE new_covariance RENAME TO covariance'); + $dbh->do('TRUNCATE aux_params'); $dbh->do('COPY aux_params ( kultur, id, value ) FROM STDIN'); $dbh->pg_putcopydata(join("\n", @aux_params)); @@ -106,12 +114,4 @@ $dbh->do('COPY ratings ( id, rating, rating_stddev ) FROM STDIN'); $dbh->pg_putcopydata(join("\n", @ratings)); $dbh->pg_putcopyend(); -$dbh->do('CREATE TABLE new_covariance ( player1 smallint NOT NULL, player2 smallint NOT NULL, cov float NOT NULL )'); -$dbh->do('COPY new_covariance ( player1, player2, cov ) FROM STDIN'); -$dbh->pg_putcopydata(join("\n", @covariances)); -$dbh->pg_putcopyend(); -$dbh->do('ALTER TABLE new_covariance ADD PRIMARY KEY ( player1, player2 );'); -$dbh->do('DROP TABLE IF EXISTS covariance'); -$dbh->do('ALTER TABLE new_covariance RENAME TO covariance'); - $dbh->commit;