MediaWiki REL1_28
|
DB accessable external objects. More...
Public Member Functions | |
batchFetchBlobs ( $cluster, array $ids) | |
Fetch multiple blob items out of the database. | |
batchFetchFromURLs (array $urls) | |
Fetch data from given external store URLs. | |
fetchBlob ( $cluster, $id, $itemID) | |
Fetch a blob item out of the database; a cache of the last-loaded blob will be kept so that multiple loads out of a multi-item blob can avoid redundant database access and decompression. | |
fetchFromURL ( $url) | |
The provided URL is in the form of DB://cluster/id or DB://cluster/id/itemid for concatened storage. | |
getLoadBalancer ( $cluster) | |
Get a LoadBalancer for the specified cluster. | |
getMaster ( $cluster) | |
Get a master database connection for the specified cluster. | |
getSlave ( $cluster) | |
Get a replica DB connection for the specified cluster. | |
getTable ( $db) | |
Get the 'blobs' table name for this database. | |
store ( $location, $data) | |
Insert a data item into a given location. | |
Public Member Functions inherited from ExternalStoreMedium | |
__construct (array $params=[]) | |
Protected Member Functions | |
parseURL ( $url) | |
Private Member Functions | |
mergeBatchResult (array &$ret, array &$ids, $res) | |
Helper function for self::batchFetchBlobs for merging master/replica DB results. | |
Additional Inherited Members | |
Protected Attributes inherited from ExternalStoreMedium | |
array | $params = [] |
DB accessable external objects.
In this system, each store "location" maps to a database "cluster". The clusters must be defined in the normal LBFactory configuration.
Definition at line 31 of file ExternalStoreDB.php.
ExternalStoreDB::batchFetchBlobs | ( | $cluster, | |
array | $ids | ||
) |
Fetch multiple blob items out of the database.
string | $cluster | A cluster name valid for use with LBFactory |
array | $ids | A map from the blob_id's to look for to the requested itemIDs in the blobs |
Definition at line 233 of file ExternalStoreDB.php.
References $dbr, $res, $ret, getMaster(), getSlave(), getTable(), mergeBatchResult(), and wfDebugLog().
Referenced by batchFetchFromURLs().
ExternalStoreDB::batchFetchFromURLs | ( | array | $urls | ) |
Fetch data from given external store URLs.
The provided URLs are in the form of DB://cluster/id or DB://cluster/id/itemid for concatened storage.
array | $urls | An array of external store URLs |
Reimplemented from ExternalStoreMedium.
Definition at line 60 of file ExternalStoreDB.php.
References $blob, $res, $ret, $urls, as, batchFetchBlobs(), list, and parseURL().
ExternalStoreDB::fetchBlob | ( | $cluster, | |
$id, | |||
$itemID | |||
) |
Fetch a blob item out of the database; a cache of the last-loaded blob will be kept so that multiple loads out of a multi-item blob can avoid redundant database access and decompression.
string | $cluster | |
string | $id | |
string | $itemID |
Definition at line 180 of file ExternalStoreDB.php.
References $dbr, $ret, false, getMaster(), getSlave(), getTable(), unserialize(), and wfDebugLog().
Referenced by fetchFromURL().
ExternalStoreDB::fetchFromURL | ( | $url | ) |
The provided URL is in the form of DB://cluster/id or DB://cluster/id/itemid for concatened storage.
string | $url |
Reimplemented from ExternalStoreMedium.
Definition at line 40 of file ExternalStoreDB.php.
References $ret, fetchBlob(), list, and parseURL().
ExternalStoreDB::getLoadBalancer | ( | $cluster | ) |
Get a LoadBalancer for the specified cluster.
string | $cluster | Cluster name |
Definition at line 108 of file ExternalStoreDB.php.
References wfGetLBFactory().
Referenced by getMaster(), and getSlave().
ExternalStoreDB::getMaster | ( | $cluster | ) |
Get a master database connection for the specified cluster.
string | $cluster | Cluster name |
Definition at line 145 of file ExternalStoreDB.php.
References DB_MASTER, DBO_TRX, and getLoadBalancer().
Referenced by batchFetchBlobs(), fetchBlob(), and store().
ExternalStoreDB::getSlave | ( | $cluster | ) |
Get a replica DB connection for the specified cluster.
string | $cluster | Cluster name |
Definition at line 120 of file ExternalStoreDB.php.
References $wgDefaultExternalStore, array(), DB_REPLICA, DBO_TRX, getLoadBalancer(), global, and wfDebug().
Referenced by batchFetchBlobs(), and fetchBlob().
ExternalStoreDB::getTable | ( | $db | ) |
Get the 'blobs' table name for this database.
IDatabase | $db |
Definition at line 161 of file ExternalStoreDB.php.
Referenced by batchFetchBlobs(), fetchBlob(), and store().
Helper function for self::batchFetchBlobs for merging master/replica DB results.
array | &$ret | Current self::batchFetchBlobs return value |
array | &$ids | Map from blob_id to requested itemIDs |
mixed | $res | DB result from Database::select |
Definition at line 272 of file ExternalStoreDB.php.
References $res, $ret, as, and unserialize().
Referenced by batchFetchBlobs().
|
protected |
string | $url |
Definition at line 291 of file ExternalStoreDB.php.
References $path.
Referenced by batchFetchFromURLs(), and fetchFromURL().
ExternalStoreDB::store | ( | $location, | |
$data | |||
) |
Insert a data item into a given location.
string | $location | The location name |
string | $data | The data item |
MWException |
Reimplemented from ExternalStoreMedium.
Definition at line 88 of file ExternalStoreDB.php.
References getMaster(), and getTable().
Referenced by CompressOld\compressPage().