From: Ariel Glenn Date: Sun, 28 Aug 2011 19:06:52 +0000 (+0000) Subject: move some member vars to parent class since they are needed there now, set lastTime... X-Git-Tag: 1.31.0-rc.0~28036 X-Git-Url: http://git.cyclocoop.org/data/Fool?a=commitdiff_plain;h=12e00d6eb903b0b1c611948e20e4ed5713035fc1;p=lhc%2Fweb%2Fwiklou.git move some member vars to parent class since they are needed there now, set lastTime and other vars so checkpoints without prefetch work, update progress reporting in parent class to give rates during interval and from start of run --- diff --git a/maintenance/backup.inc b/maintenance/backup.inc index 583b1093aa..1dd160737a 100644 --- a/maintenance/backup.inc +++ b/maintenance/backup.inc @@ -51,6 +51,10 @@ class BackupDumper { var $stubText = false; // include rev_text_id instead of text; for 2-pass dump var $dumpUploads = false; var $dumpUploadFileContents = false; + var $lastTime = 0; + var $pageCountLast = 0; + var $revCountLast = 0; + var $ID = 0; function BackupDumper( $args ) { $this->stderr = fopen( "php://stderr", "wt" ); @@ -233,6 +237,8 @@ class BackupDumper { $dbr = wfGetDB( DB_SLAVE ); $this->maxCount = $dbr->selectField( $table, "MAX($field)", '', __METHOD__ ); $this->startTime = wfTime(); + $this->lastTime = $this->startTime; + $this->ID = getmypid(); } /** @@ -281,21 +287,35 @@ class BackupDumper { function showReport() { if ( $this->reporting ) { - $delta = wfTime() - $this->startTime; $now = wfTimestamp( TS_DB ); - if ( $delta ) { - $rate = $this->pageCount / $delta; - $revrate = $this->revCount / $delta; + $nowts = wfTime(); + $deltaAll = wfTime() - $this->startTime; + $deltaPart = wfTime() - $this->lastTime; + $this->pageCountPart = $this->pageCount - $this->pageCountLast; + $this->revCountPart = $this->revCount - $this->revCountLast; + + if ( $deltaAll ) { $portion = $this->revCount / $this->maxCount; - $eta = $this->startTime + $delta / $portion; + $eta = $this->startTime + $deltaAll / $portion; $etats = wfTimestamp( TS_DB, intval( $eta ) ); + $pageRate = $this->pageCount / $deltaAll; + $revRate = $this->revCount / $deltaAll; } else { - $rate = '-'; - $revrate = '-'; + $pageRate = '-'; + $revRate = '-'; $etats = '-'; } - $this->progress( sprintf( "%s: %s %d pages (%0.3f/sec), %d revs (%0.3f/sec), ETA %s [max %d]", - $now, wfWikiID(), $this->pageCount, $rate, $this->revCount, $revrate, $etats, $this->maxCount ) ); + if ( $deltaPart ) { + $pageRatePart = $this->pageCountPart / $deltaPart; + $revRatePart = $this->revCountPart / $deltaPart; + } else { + $pageRatePart = '-'; + $revRatePart = '-'; + } + $this->progress( sprintf( "%s: %s (ID %d) %d pages (%0.1f|%0.1f/sec all|curr), %d revs (%0.1f|%0.1f/sec all|curr), ETA %s [max %d]", + $now, wfWikiID(), $this->ID, $this->pageCount, $pageRate, $pageRatePart, $this->revCount, $revRate, $revRatePart, $etats, $this->maxCount ) ); + $this->lastTime = $nowts; + $this->revCountLast = $this->revCount; } } diff --git a/maintenance/dumpTextPass.php b/maintenance/dumpTextPass.php index c891a02f45..d45199003c 100644 --- a/maintenance/dumpTextPass.php +++ b/maintenance/dumpTextPass.php @@ -38,9 +38,6 @@ class TextPassDumper extends BackupDumper { var $history = WikiExporter::FULL; var $fetchCount = 0; var $prefetchCount = 0; - var $lastTime = 0; - var $pageCountLast = 0; - var $revCountLast = 0; var $prefetchCountLast = 0; var $fetchCountLast = 0; @@ -57,8 +54,6 @@ class TextPassDumper extends BackupDumper { var $spawnRead = false; var $spawnErr = false; - var $ID = 0; - var $xmlwriterobj = false; # when we spend more than maxTimeAllowed seconds on this run, we continue @@ -73,8 +68,6 @@ class TextPassDumper extends BackupDumper { function initProgress( $history ) { parent::initProgress(); - $this->ID = getmypid(); - $this->lastTime = $this->startTime; $this->timeOfCheckpoint = $this->startTime; } @@ -234,10 +227,6 @@ class TextPassDumper extends BackupDumper { } function checkIfTimeExceeded() { - $m1 = $this->maxTimeAllowed; - $m2 = $this->lastTime; - $m3 = $this->timeOfCheckpoint; - $m4 = $this->lastTime - $this->timeOfCheckpoint; if ( $this->maxTimeAllowed && ( $this->lastTime - $this->timeOfCheckpoint > $this->maxTimeAllowed ) ) { return True; }