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

Reply via email to