http://www.mediawiki.org/wiki/Special:Code/MediaWiki/95634
Revision: 95634 Author: ariel Date: 2011-08-28 19:06:52 +0000 (Sun, 28 Aug 2011) Log Message: ----------- 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 Modified Paths: -------------- trunk/phase3/maintenance/backup.inc trunk/phase3/maintenance/dumpTextPass.php Modified: trunk/phase3/maintenance/backup.inc =================================================================== --- trunk/phase3/maintenance/backup.inc 2011-08-28 18:00:02 UTC (rev 95633) +++ trunk/phase3/maintenance/backup.inc 2011-08-28 19:06:52 UTC (rev 95634) @@ -51,6 +51,10 @@ 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 @@ $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 @@ 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; } } Modified: trunk/phase3/maintenance/dumpTextPass.php =================================================================== --- trunk/phase3/maintenance/dumpTextPass.php 2011-08-28 18:00:02 UTC (rev 95633) +++ trunk/phase3/maintenance/dumpTextPass.php 2011-08-28 19:06:52 UTC (rev 95634) @@ -38,9 +38,6 @@ 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 @@ 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 @@ function initProgress( $history ) { parent::initProgress(); - $this->ID = getmypid(); - $this->lastTime = $this->startTime; $this->timeOfCheckpoint = $this->startTime; } @@ -234,10 +227,6 @@ } 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; } _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs