Merge "Make updateCollation wait for slaves every 500 (instead of 2000)"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 12 May 2016 11:47:08 +0000 (11:47 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 12 May 2016 11:47:08 +0000 (11:47 +0000)
1  2 
maintenance/updateCollation.php

@@@ -34,7 -34,7 +34,7 @@@ require_once __DIR__ . '/Maintenance.ph
   */
  class UpdateCollation extends Maintenance {
        const BATCH_SIZE = 100; // Number of rows to process in one batch
-       const SYNC_INTERVAL = 20; // Wait for slaves after this many batches
+       const SYNC_INTERVAL = 5; // Wait for slaves after this many batches
  
        public $sizeHistogram = [];
  
@@@ -70,7 -70,6 +70,7 @@@ TEX
                global $wgCategoryCollation;
  
                $dbw = $this->getDB( DB_MASTER );
 +              $dbr = $this->getDB( DB_SLAVE );
                $force = $this->getOption( 'force' );
                $dryRun = $this->getOption( 'dry-run' );
                $verboseStats = $this->getOption( 'verbose-stats' );
@@@ -98,7 -97,6 +98,7 @@@
                $options = [
                        'LIMIT' => self::BATCH_SIZE,
                        'ORDER BY' => $orderBy,
 +                      'STRAIGHT_JOIN' // per T58041
                ];
  
                if ( $force || $dryRun ) {
                                ];
                        }
  
 -                      $count = $dbw->estimateRowCount(
 +                      $count = $dbr->estimateRowCount(
                                'categorylinks',
                                '*',
                                $collationConds,
                        );
                        // Improve estimate if feasible
                        if ( $count < 1000000 ) {
 -                              $count = $dbw->selectField(
 +                              $count = $dbr->selectField(
                                        'categorylinks',
                                        'COUNT(*)',
                                        $collationConds,
                                return;
                        }
                        $this->output( "Fixing collation for $count rows.\n" );
 +                      wfWaitForSlaves();
                }
                $count = 0;
                $batchCount = 0;