move some member vars to parent class since they are needed there now, set lastTime...
authorAriel Glenn <ariel@users.mediawiki.org>
Sun, 28 Aug 2011 19:06:52 +0000 (19:06 +0000)
committerAriel Glenn <ariel@users.mediawiki.org>
Sun, 28 Aug 2011 19:06:52 +0000 (19:06 +0000)
maintenance/backup.inc
maintenance/dumpTextPass.php

index 583b109..1dd1607 100644 (file)
@@ -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;
                }
        }
 
index c891a02..d451990 100644 (file)
@@ -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;
                }