MediaWiki
REL1_24
|
Maintenance script that moves blobs indexed by trackBlobs.php to a specified list of destination clusters, and recompresses them in the process. More...
Public Member Functions | |
__construct ($options) | |
checkTrackingTable () | |
Make sure the tracking table exists and isn't empty. | |
critical ($msg) | |
debug ($msg) | |
dispatch () | |
Dispatch a command to the next available slave. | |
dispatchToSlave ($slaveId, $args) | |
Dispatch a command to a specified slave. | |
doAllOrphans () | |
Move all orphan text to the new clusters. | |
doAllPages () | |
Move all tracked pages to the new clusters. | |
doOrphanList ($textIds) | |
Move an orphan text_id to the new cluster. | |
doPage ($pageId) | |
Move tracked text in a given page. | |
execute () | |
Execute parent or child depending on the isChild option. | |
executeChild () | |
Main entry point for worker processes. | |
executeParent () | |
Execute the parent process. | |
finishIncompleteMoves ($conds) | |
Moves are done in two phases: bt_new_url and then bt_moved. | |
getExtDB ($cluster) | |
Gets a DB master connection for the given external cluster name. | |
getTargetCluster () | |
Returns the name of the next target cluster. | |
info ($msg) | |
killSlaveProcs () | |
Gracefully terminate the child processes. | |
logToFile ($msg, $file) | |
moveTextRow ($textId, $url) | |
Atomic move operation. | |
report ($label, $current, $end) | |
Display a progress report. | |
startSlaveProcs () | |
Start the worker processes. | |
syncDBs () | |
Wait until the selected slave has caught up to the master. | |
waitForSlaves () | |
Wait for slaves (quietly) | |
Static Public Member Functions | |
static | getOptionsWithArgs () |
static | newFromCommandLine ($args, $options) |
Public Attributes | |
$batchSize = 1000 | |
$copyOnly = false | |
$criticalLog | |
$debugLog | |
$destClusters | |
$infoLog | |
$isChild = false | |
$noCount = false | |
$numProcs = 1 | |
$orphanBatchSize = 1000 | |
$orphanBlobClass | |
$pageBlobClass | |
$prevSlaveId | |
$reportingInterval = 10 | |
$slaveId = false | |
$slavePipes | |
$slaveProcs | |
$store | |
$useDiff | |
Static Private Attributes | |
static | $cmdLineOptionMap |
static | $optionsWithArgs |
Maintenance script that moves blobs indexed by trackBlobs.php to a specified list of destination clusters, and recompresses them in the process.
Definition at line 53 of file recompressTracked.php.
RecompressTracked::__construct | ( | $ | options | ) |
Make sure the tracking table exists and isn't empty.
Definition at line 189 of file recompressTracked.php.
References $dbr, critical(), info(), and wfGetDB().
Referenced by executeParent().
RecompressTracked::critical | ( | $ | msg | ) |
Definition at line 131 of file recompressTracked.php.
References logToFile().
Referenced by checkTrackingTable(), dispatch(), doOrphanList(), doPage(), killSlaveProcs(), moveTextRow(), and startSlaveProcs().
RecompressTracked::debug | ( | $ | msg | ) |
Definition at line 117 of file recompressTracked.php.
References logToFile(), and wfDebug().
Referenced by doOrphanList(), doPage(), executeChild(), and finishIncompleteMoves().
Dispatch a command to the next available slave.
This may block until a slave finishes its work and becomes available.
Definition at line 269 of file recompressTracked.php.
References $slaveId, array(), critical(), and dispatchToSlave().
Referenced by doAllPages().
RecompressTracked::dispatchToSlave | ( | $ | slaveId, |
$ | args | ||
) |
Dispatch a command to a specified slave.
int | $slaveId | |
array | string | $args |
Definition at line 295 of file recompressTracked.php.
References $slaveId, and array().
Referenced by dispatch(), and killSlaveProcs().
Move all orphan text to the new clusters.
Definition at line 373 of file recompressTracked.php.
References $dbr, $res, array(), as, info(), report(), and wfGetDB().
Referenced by executeParent().
Move all tracked pages to the new clusters.
Definition at line 304 of file recompressTracked.php.
References $dbr, $res, array(), as, dispatch(), info(), is, query, report(), so, that, and wfGetDB().
Referenced by executeParent().
RecompressTracked::doOrphanList | ( | $ | textIds | ) |
Move an orphan text_id to the new cluster.
array | $textIds |
Definition at line 650 of file recompressTracked.php.
References $res, array(), as, critical(), debug(), finishIncompleteMoves(), Revision\getRevisionText(), syncDBs(), waitForSlaves(), and wfGetDB().
Referenced by executeChild().
RecompressTracked::doPage | ( | $ | pageId | ) |
Move tracked text in a given page.
int | $pageId |
Definition at line 473 of file recompressTracked.php.
References $dbr, $res, $title, array(), as, critical(), debug(), finishIncompleteMoves(), Revision\getRevisionText(), syncDBs(), waitForSlaves(), and wfGetDB().
Referenced by executeChild().
Execute parent or child depending on the isChild option.
Definition at line 162 of file recompressTracked.php.
References executeChild(), and executeParent().
Main entry point for worker processes.
Definition at line 442 of file recompressTracked.php.
References debug(), doOrphanList(), doPage(), syncDBs(), and waitForSlaves().
Referenced by execute().
Execute the parent process.
Definition at line 173 of file recompressTracked.php.
References checkTrackingTable(), doAllOrphans(), doAllPages(), killSlaveProcs(), startSlaveProcs(), and syncDBs().
Referenced by execute().
RecompressTracked::finishIncompleteMoves | ( | $ | conds | ) |
Moves are done in two phases: bt_new_url and then bt_moved.
This function completes any moves that only have done bt_new_url. This can happen when the script is interrupted, or when --copy-only is used.
array | $conds |
Definition at line 589 of file recompressTracked.php.
References $conds, $dbr, $res, array(), as, debug(), moveTextRow(), waitForSlaves(), and wfGetDB().
Referenced by doOrphanList(), and doPage().
RecompressTracked::getExtDB | ( | $ | cluster | ) |
Gets a DB master connection for the given external cluster name.
string | $cluster |
Definition at line 639 of file recompressTracked.php.
References $lb, and wfGetLBFactory().
static RecompressTracked::getOptionsWithArgs | ( | ) | [static] |
Definition at line 87 of file recompressTracked.php.
References $optionsWithArgs.
Returns the name of the next target cluster.
Definition at line 625 of file recompressTracked.php.
RecompressTracked::info | ( | $ | msg | ) |
Definition at line 124 of file recompressTracked.php.
References logToFile().
Referenced by checkTrackingTable(), doAllOrphans(), doAllPages(), killSlaveProcs(), and report().
Gracefully terminate the child processes.
Definition at line 251 of file recompressTracked.php.
References critical(), dispatchToSlave(), and info().
Referenced by executeParent().
RecompressTracked::logToFile | ( | $ | msg, |
$ | file | ||
) |
Definition at line 138 of file recompressTracked.php.
References $file, wfErrorLog(), wfHostname(), and wfWikiID().
Referenced by critical(), debug(), and info().
RecompressTracked::moveTextRow | ( | $ | textId, |
$ | url | ||
) |
Atomic move operation.
Write the new URL to the text table and set the bt_moved flag.
This is done in a single transaction to provide restartable behavior without data loss.
The transaction is kept short to reduce locking.
int | $textId | |
string | $url |
Definition at line 554 of file recompressTracked.php.
References array(), critical(), and wfGetDB().
Referenced by finishIncompleteMoves().
static RecompressTracked::newFromCommandLine | ( | $ | args, |
$ | options | ||
) | [static] |
Definition at line 91 of file recompressTracked.php.
RecompressTracked::report | ( | $ | label, |
$ | current, | ||
$ | end | ||
) |
Display a progress report.
string | $label | |
int | $current | |
int | $end |
Definition at line 361 of file recompressTracked.php.
References info(), and waitForSlaves().
Referenced by doAllOrphans(), and doAllPages().
Start the worker processes.
These processes will listen on stdin for commands. This necessary because text recompression is slow: loading, compressing and writing are all slow.
Definition at line 212 of file recompressTracked.php.
References $optionsWithArgs, array(), as, critical(), wfEscapeShellArg(), wfRestoreWarnings(), wfSuppressWarnings(), and wfWikiID().
Referenced by executeParent().
Wait until the selected slave has caught up to the master.
This allows us to use the slave for things that were committed in a previous part of this batch process.
Definition at line 152 of file recompressTracked.php.
References $dbr, and wfGetDB().
Referenced by doOrphanList(), doPage(), executeChild(), and executeParent().
Wait for slaves (quietly)
Definition at line 692 of file recompressTracked.php.
References $lb, list, and wfGetLB().
Referenced by doOrphanList(), doPage(), executeChild(), finishIncompleteMoves(), and report().
RecompressTracked::$batchSize = 1000 |
Definition at line 55 of file recompressTracked.php.
RecompressTracked::$cmdLineOptionMap [static, private] |
array( 'no-count' => 'noCount', 'procs' => 'numProcs', 'copy-only' => 'copyOnly', 'child' => 'isChild', 'slave-id' => 'slaveId', 'debug-log' => 'debugLog', 'info-log' => 'infoLog', 'critical-log' => 'criticalLog', )
Definition at line 76 of file recompressTracked.php.
RecompressTracked::$copyOnly = false |
Definition at line 61 of file recompressTracked.php.
RecompressTracked::$criticalLog |
Definition at line 65 of file recompressTracked.php.
RecompressTracked::$debugLog |
Definition at line 65 of file recompressTracked.php.
RecompressTracked::$destClusters |
Definition at line 54 of file recompressTracked.php.
RecompressTracked::$infoLog |
Definition at line 65 of file recompressTracked.php.
RecompressTracked::$isChild = false |
Definition at line 62 of file recompressTracked.php.
RecompressTracked::$noCount = false |
Definition at line 64 of file recompressTracked.php.
RecompressTracked::$numProcs = 1 |
Definition at line 58 of file recompressTracked.php.
RecompressTracked::$optionsWithArgs [static, private] |
array( 'procs', 'slave-id', 'debug-log', 'info-log', 'critical-log' )
Definition at line 68 of file recompressTracked.php.
Referenced by getOptionsWithArgs().
RecompressTracked::$orphanBatchSize = 1000 |
Definition at line 56 of file recompressTracked.php.
RecompressTracked::$orphanBlobClass |
Definition at line 59 of file recompressTracked.php.
RecompressTracked::$pageBlobClass |
Definition at line 59 of file recompressTracked.php.
RecompressTracked::$prevSlaveId |
Definition at line 60 of file recompressTracked.php.
RecompressTracked::$reportingInterval = 10 |
Definition at line 57 of file recompressTracked.php.
RecompressTracked::$slaveId = false |
Definition at line 63 of file recompressTracked.php.
Referenced by dispatch(), and dispatchToSlave().
RecompressTracked::$slavePipes |
Definition at line 60 of file recompressTracked.php.
RecompressTracked::$slaveProcs |
Definition at line 60 of file recompressTracked.php.
RecompressTracked::$store |
Definition at line 66 of file recompressTracked.php.
RecompressTracked::$useDiff |
Definition at line 59 of file recompressTracked.php.