[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Show some statistics on the blob_orphans table, created with trackBlobs.php. 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License along 16 * with this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 * http://www.gnu.org/copyleft/gpl.html 19 * 20 * @file 21 * @ingroup Maintenance ExternalStorage 22 */ 23 24 require_once __DIR__ . '/../Maintenance.php'; 25 26 /** 27 * Maintenance script that shows some statistics on the blob_orphans table, 28 * created with trackBlobs.php. 29 * 30 * @ingroup Maintenance ExternalStorage 31 */ 32 class OrphanStats extends Maintenance { 33 public function __construct() { 34 parent::__construct(); 35 $this->mDescription = 36 "Show some statistics on the blob_orphans table, created with trackBlobs.php"; 37 } 38 39 protected function &getDB( $cluster, $groups = array(), $wiki = false ) { 40 $lb = wfGetLBFactory()->getExternalLB( $cluster ); 41 42 return $lb->getConnection( DB_SLAVE ); 43 } 44 45 public function execute() { 46 $dbr = wfGetDB( DB_SLAVE ); 47 if ( !$dbr->tableExists( 'blob_orphans' ) ) { 48 $this->error( "blob_orphans doesn't seem to exist, need to run trackBlobs.php first", true ); 49 } 50 $res = $dbr->select( 'blob_orphans', '*', false, __METHOD__ ); 51 52 $num = 0; 53 $totalSize = 0; 54 $hashes = array(); 55 $maxSize = 0; 56 57 foreach ( $res as $boRow ) { 58 $extDB = $this->getDB( $boRow->bo_cluster ); 59 $blobRow = $extDB->selectRow( 60 'blobs', 61 '*', 62 array( 'blob_id' => $boRow->bo_blob_id ), 63 __METHOD__ 64 ); 65 66 $num++; 67 $size = strlen( $blobRow->blob_text ); 68 $totalSize += $size; 69 $hashes[sha1( $blobRow->blob_text )] = true; 70 $maxSize = max( $size, $maxSize ); 71 } 72 unset( $res ); 73 74 $this->output( "Number of orphans: $num\n" ); 75 if ( $num > 0 ) { 76 $this->output( "Average size: " . round( $totalSize / $num, 0 ) . " bytes\n" . 77 "Max size: $maxSize\n" . 78 "Number of unique texts: " . count( $hashes ) . "\n" ); 79 } 80 } 81 } 82 83 $maintClass = "OrphanStats"; 84 require_once RUN_MAINTENANCE_IF_MAIN;
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |