MediaWiki
1.34.0
|
DB accessible external objects. More...
Public Member Functions | |||||||||
__construct (array $params) | |||||||||
batchFetchFromURLs (array $urls) | |||||||||
Fetch data from given external store URLs. More... | |||||||||
fetchFromURL ( $url) | |||||||||
The provided URL is in the form of DB://cluster/id or DB://cluster/id/itemid for concatened storage. More... | |||||||||
getMaster ( $cluster) | |||||||||
Get a master database connection for the specified cluster. More... | |||||||||
getReplica ( $cluster) | |||||||||
Get a replica DB connection for the specified cluster. More... | |||||||||
getSlave ( $cluster) | |||||||||
Get a replica DB connection for the specified cluster. More... | |||||||||
getTable ( $db, $cluster=null) | |||||||||
Get the 'blobs' table name for this database. More... | |||||||||
initializeTable ( $cluster) | |||||||||
Create the appropriate blobs table on this cluster. More... | |||||||||
isReadOnly ( $location) | |||||||||
Check if a given location is read-only.
| |||||||||
store ( $location, $data) | |||||||||
Insert a data item into a given location.
| |||||||||
Public Member Functions inherited from ExternalStoreMedium | |||||||||
setLogger (LoggerInterface $logger) | |||||||||
Protected Member Functions | |
parseURL ( $url) | |
Private Member Functions | |
batchFetchBlobs ( $cluster, array $ids) | |
Fetch multiple blob items out of the database. More... | |
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. More... | |
getDomainId (array $server) | |
getLoadBalancer ( $cluster) | |
Get a LoadBalancer for the specified cluster. More... | |
mergeBatchResult (array &$ret, array &$ids, $res) | |
Helper function for self::batchFetchBlobs for merging master/replica DB results. More... | |
Private Attributes | |
LBFactory | $lbFactory |
Additional Inherited Members | |
Protected Attributes inherited from ExternalStoreMedium | |
string | $dbDomain |
Default database domain to store content under. More... | |
bool | $isDbDomainExplicit |
Whether this was factoried with an explicit DB domain. More... | |
LoggerInterface | $logger |
array | $params = [] |
Usage context options for this instance. More... | |
DB accessible 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 39 of file ExternalStoreDB.php.
ExternalStoreDB::__construct | ( | array | $params | ) |
array | $params | Additional parameters include:
|
Reimplemented from ExternalStoreMedium.
Definition at line 48 of file ExternalStoreDB.php.
References ExternalStoreMedium\$params.
|
private |
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 350 of file ExternalStoreDB.php.
References $dbr, $res, getMaster(), getReplica(), getTable(), and mergeBatchResult().
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 84 of file ExternalStoreDB.php.
References $blob, $res, batchFetchBlobs(), and parseURL().
|
private |
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 291 of file ExternalStoreDB.php.
References $dbr, getMaster(), getReplica(), getTable(), and unserialize().
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 64 of file ExternalStoreDB.php.
References fetchBlob(), and parseURL().
|
private |
array | $server | Master DB server configuration array for LoadBalancer |
Definition at line 204 of file ExternalStoreDB.php.
References ExternalStoreMedium\$dbDomain.
Referenced by getMaster(), getReplica(), and isReadOnly().
|
private |
Get a LoadBalancer for the specified cluster.
string | $cluster | Cluster name |
Definition at line 150 of file ExternalStoreDB.php.
Referenced by getMaster(), getReplica(), getTable(), and isReadOnly().
ExternalStoreDB::getMaster | ( | $cluster | ) |
Get a master database connection for the specified cluster.
string | $cluster | Cluster name |
Definition at line 189 of file ExternalStoreDB.php.
References DB_MASTER, getDomainId(), and getLoadBalancer().
Referenced by batchFetchBlobs(), fetchBlob(), initializeTable(), and store().
ExternalStoreDB::getReplica | ( | $cluster | ) |
Get a replica DB connection for the specified cluster.
string | $cluster | Cluster name |
Definition at line 161 of file ExternalStoreDB.php.
References DB_REPLICA, getDomainId(), and getLoadBalancer().
Referenced by batchFetchBlobs(), fetchBlob(), and getSlave().
ExternalStoreDB::getSlave | ( | $cluster | ) |
Get a replica DB connection for the specified cluster.
string | $cluster | Cluster name |
Definition at line 179 of file ExternalStoreDB.php.
References getReplica().
ExternalStoreDB::getTable | ( | $db, | |
$cluster = null |
|||
) |
Get the 'blobs' table name for this database.
IDatabase | $db | |
string | null | $cluster | Cluster name |
Definition at line 234 of file ExternalStoreDB.php.
References getLoadBalancer().
Referenced by batchFetchBlobs(), fetchBlob(), initializeTable(), and store().
ExternalStoreDB::initializeTable | ( | $cluster | ) |
Create the appropriate blobs table on this cluster.
string | $cluster |
Definition at line 253 of file ExternalStoreDB.php.
References $IP, getMaster(), getTable(), and true.
ExternalStoreDB::isReadOnly | ( | $location | ) |
Check if a given location is read-only.
string | $location | The location name |
Reimplemented from ExternalStoreMedium.
Definition at line 133 of file ExternalStoreDB.php.
References getDomainId(), and getLoadBalancer().
|
private |
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 397 of file ExternalStoreDB.php.
References $res, and unserialize().
Referenced by batchFetchBlobs().
|
protected |
string | $url |
Definition at line 416 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 115 of file ExternalStoreDB.php.
References getMaster(), and getTable().
|
private |
Definition at line 41 of file ExternalStoreDB.php.