From 12e00d6eb903b0b1c611948e20e4ed5713035fc1 Mon Sep 17 00:00:00 2001 From: Ariel Glenn Date: Sun, 28 Aug 2011 19:06:52 +0000 Subject: [PATCH] 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 --- maintenance/backup.inc | 38 +++++++++++++++++++++++++++--------- maintenance/dumpTextPass.php | 11 ----------- 2 files changed, 29 insertions(+), 20 deletions(-) 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; } -- 2.20.1