X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2Fstorage%2FcompressOld.php;h=b27b111e18c8ab83a700614493aade1ee5b69296;hb=23299ca8790bcf1aebcf54e0932b94338e630474;hp=cfffbbcae97cb93b59c865a5f52f80a924e581a5;hpb=c2324379048d7a7c6d891150c00f71fd58861fe0;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/storage/compressOld.php b/maintenance/storage/compressOld.php index cfffbbcae9..b27b111e18 100644 --- a/maintenance/storage/compressOld.php +++ b/maintenance/storage/compressOld.php @@ -50,9 +50,15 @@ require_once __DIR__ . '/../Maintenance.php'; */ class CompressOld extends Maintenance { /** - * @todo document + * Option to load each revision individually. + * */ const LS_INDIVIDUAL = 0; + + /** + * Option to load revisions in chunks. + * + */ const LS_CHUNKED = 1; public function __construct() { @@ -137,14 +143,15 @@ class CompressOld extends Maintenance { } /** - * @todo document + * Fetch the text row-by-row to 'compressPage' function for compression. + * * @param int $start * @param string $extdb */ private function compressOldPages( $start = 0, $extdb = '' ) { $chunksize = 50; $this->output( "Starting from old_id $start...\n" ); - $dbw = wfGetDB( DB_MASTER ); + $dbw = $this->getDB( DB_MASTER ); do { $res = $dbw->select( 'text', @@ -172,7 +179,8 @@ class CompressOld extends Maintenance { } /** - * @todo document + * Compress the text in gzip format. + * * @param stdClass $row * @param string $extdb * @return bool @@ -181,10 +189,10 @@ class CompressOld extends Maintenance { if ( false !== strpos( $row->old_flags, 'gzip' ) || false !== strpos( $row->old_flags, 'object' ) ) { - #print "Already compressed row {$row->old_id}\n"; + # print "Already compressed row {$row->old_id}\n"; return false; } - $dbw = wfGetDB( DB_MASTER ); + $dbw = $this->getDB( DB_MASTER ); $flags = $row->old_flags ? "{$row->old_flags},gzip" : "gzip"; $compress = gzdeflate( $row->old_text ); @@ -214,6 +222,8 @@ class CompressOld extends Maintenance { } /** + * Compress the text in chunks after concatenating the revisions. + * * @param int $startId * @param int $maxChunkSize * @param string $beginDate @@ -227,8 +237,8 @@ class CompressOld extends Maintenance { ) { $loadStyle = self::LS_CHUNKED; - $dbr = wfGetDB( DB_SLAVE ); - $dbw = wfGetDB( DB_MASTER ); + $dbr = $this->getDB( DB_SLAVE ); + $dbw = $this->getDB( DB_MASTER ); # Set up external storage if ( $extdb != '' ) { @@ -293,8 +303,8 @@ class CompressOld extends Maintenance { # Don't work with current revisions # Don't lock the page table for update either -- TS 2006-04-04 - #$tables[] = 'page'; - #$conds[] = 'page_id=rev_page AND rev_id != page_latest'; + # $tables[] = 'page'; + # $conds[] = 'page_id=rev_page AND rev_id != page_latest'; for ( $pageId = $startId; $pageId <= $maxPageId; $pageId++ ) { wfWaitForSlaves(); @@ -349,7 +359,7 @@ class CompressOld extends Maintenance { $chunk = new ConcatenatedGzipHistoryBlob(); $stubs = array(); - $dbw->begin( __METHOD__ ); + $this->beginTransaction( $dbw, __METHOD__ ); $usedChunk = false; $primaryOldid = $revs[$i]->rev_text_id; @@ -374,7 +384,7 @@ class CompressOld extends Maintenance { if ( $text === false ) { $this->error( "\nError, unable to get text in old_id $oldid" ); - #$dbw->delete( 'old', array( 'old_id' => $oldid ) ); + # $dbw->delete( 'old', array( 'old_id' => $oldid ) ); } if ( $extdb == "" && $j == 0 ) { @@ -453,7 +463,7 @@ class CompressOld extends Maintenance { } # Done, next $this->output( "/" ); - $dbw->commit( __METHOD__ ); + $this->commitTransaction( $dbw, __METHOD__ ); $i += $thisChunkSize; wfWaitForSlaves(); }