MediaWiki
1.34.0
|
A simple single-master LBFactory that gets its configuration from the b/c globals. More...
Public Member Functions | |
__construct (array $conf) | |
forEachLB ( $callback, array $params=[]) | |
Execute a function for each currently tracked (instantiated) load balancer. More... | |
getAllExternalLBs () | |
Get cached (tracked) load balancers for all external database clusters. More... | |
getAllMainLBs () | |
Get cached (tracked) load balancers for all main database clusters. More... | |
getExternalLB ( $cluster) | |
Get a cached (tracked) load balancer for external storage. More... | |
getMainLB ( $domain=false) | |
Get a cached (tracked) load balancer object. More... | |
newExternalLB ( $cluster, $owner=null) | |
Create a new load balancer for external storage. More... | |
newMainLB ( $domain=false, $owner=null) | |
Create a new load balancer object. More... | |
Public Member Functions inherited from Wikimedia\Rdbms\LBFactory | |
__destruct () | |
appendShutdownCPIndexAsQuery ( $url, $index) | |
Append ?cpPosIndex parameter to a URL for ChronologyProtector purposes if needed. More... | |
beginMasterChanges ( $fname=__METHOD__) | |
Flush any master transaction snapshots and set DBO_TRX (if DBO_DEFAULT is set) More... | |
closeAll () | |
Close all open database connections on all open load balancers. More... | |
commitAll ( $fname=__METHOD__, array $options=[]) | |
Commit open transactions on all connections. More... | |
commitAndWaitForReplication ( $fname, $ticket, array $opts=[]) | |
Convenience method for safely running commitMasterChanges()/waitForReplication() More... | |
commitMasterChanges ( $fname=__METHOD__, array $options=[]) | |
Commit changes and clear view snapshots on all master connections. More... | |
destroy () | |
Disables all load balancers. More... | |
disableChronologyProtection () | |
Disable the ChronologyProtector for all load balancers. More... | |
flushReplicaSnapshots ( $fname=__METHOD__) | |
Commit all replica DB transactions so as to flush any REPEATABLE-READ or SSI snapshot. More... | |
getChronologyProtectorClientId () | |
Get the client ID of the ChronologyProtector instance. More... | |
getChronologyProtectorTouched ( $dbName) | |
getEmptyTransactionTicket ( $fname) | |
Get a token asserting that no transaction writes are active. More... | |
getLocalDomainID () | |
Get the local (and default) database domain ID of connection handles. More... | |
hasMasterChanges () | |
Determine if any master connection has pending changes. More... | |
hasOrMadeRecentMasterChanges ( $age=null) | |
Determine if any master connection has pending/written changes from this request. More... | |
hasTransactionRound () | |
Check if an explicit transaction round is active. More... | |
isReadyForRoundOperations () | |
Check if transaction rounds can be started, committed, or rolled back right now. More... | |
laggedReplicaUsed () | |
Detemine if any lagged replica DB connection was used. More... | |
redefineLocalDomain ( $domain) | |
Close all connection and redefine the local domain for testing or schema creation. More... | |
resolveDomainID ( $domain) | |
rollbackMasterChanges ( $fname=__METHOD__) | |
Rollback changes on all master connections. More... | |
setAgentName ( $agent) | |
setIndexAliases (array $aliases) | |
Convert certain index names to alternative names before querying the DB. More... | |
setLocalDomainPrefix ( $prefix) | |
Set a new table prefix for the existing local domain ID for testing. More... | |
setRequestInfo (array $info) | |
setTableAliases (array $aliases) | |
Make certain table names use their own database, schema, and table prefix when passed into SQL queries pre-escaped and without a qualified database name. More... | |
setWaitForReplicationListener ( $name, callable $callback=null) | |
Add a callback to be run in every call to waitForReplication() before waiting. More... | |
shutdown ( $mode=self::SHUTDOWN_CHRONPROT_SYNC, callable $workCallback=null, &$cpIndex=null, &$cpClientId=null) | |
Prepare all currently tracked (instantiated) load balancers for shutdown. More... | |
waitForReplication (array $opts=[]) | |
Waits for the replica DBs to catch up to the current master position. More... | |
Private Member Functions | |
newLoadBalancer (array $servers, $owner) | |
Private Attributes | |
LoadBalancer[] | $externalLBs = [] |
array[][] | $externalServersByCluster = [] |
Map of (cluster => server index => server config map) More... | |
string | $loadMonitorClass |
LoadBalancer | $mainLB |
array[] | $mainServers = [] |
Map of (server index => server config map) More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from Wikimedia\Rdbms\LBFactory | |
static | getCPInfoFromCookieValue ( $value, $minTimestamp) |
static | makeCookieValueFromCPIndex ( $index, $time, $clientId) |
Public Attributes inherited from Wikimedia\Rdbms\LBFactory | |
const | ROUND_BEGINNING = 'within-begin' |
const | ROUND_COMMIT_CALLBACKS = 'within-commit-callbacks' |
const | ROUND_COMMITTING = 'within-commit' |
const | ROUND_CURSORY = 'cursory' |
const | ROUND_ROLLBACK_CALLBACKS = 'within-rollback-callbacks' |
const | ROUND_ROLLING_BACK = 'within-rollback' |
Protected Member Functions inherited from Wikimedia\Rdbms\LBFactory | |
baseLoadBalancerParams ( $owner) | |
Get parameters to ILoadBalancer::__construct() More... | |
forEachLBCallMethod ( $methodName, array $args=[]) | |
Call a method of each tracked load balancer. More... | |
getChronologyProtector () | |
getOwnershipId () | |
initLoadBalancer (ILoadBalancer $lb) | |
shutdownChronologyProtector (ChronologyProtector $cp, $workCallback, $mode, &$cpIndex=null) | |
Get and record all of the staged DB positions into persistent memory storage. More... | |
Protected Attributes inherited from Wikimedia\Rdbms\LBFactory | |
DatabaseDomain | $localDomain |
Local domain. More... | |
int null | $maxLag |
BagOStuff | $memStash |
string bool | $readOnlyReason = false |
Reason all LBs are read-only or false if not. More... | |
BagOStuff | $srvCache |
WANObjectCache | $wanCache |
A simple single-master LBFactory that gets its configuration from the b/c globals.
Definition at line 31 of file LBFactorySimple.php.
Wikimedia\Rdbms\LBFactorySimple::__construct | ( | array | $conf | ) |
array | $conf | Additional parameters include:
|
Reimplemented from Wikimedia\Rdbms\LBFactory.
Definition at line 57 of file LBFactorySimple.php.
Wikimedia\Rdbms\LBFactorySimple::forEachLB | ( | $callback, | |
array | $params = [] |
||
) |
Execute a function for each currently tracked (instantiated) load balancer.
The callback is called with the load balancer as the first parameter, and $params passed as the subsequent parameters.
callable | $callback | |
array | $params |
Implements Wikimedia\Rdbms\ILBFactory.
Definition at line 132 of file LBFactorySimple.php.
Wikimedia\Rdbms\LBFactorySimple::getAllExternalLBs | ( | ) |
Get cached (tracked) load balancers for all external database clusters.
Implements Wikimedia\Rdbms\ILBFactory.
Definition at line 110 of file LBFactorySimple.php.
References Wikimedia\Rdbms\LBFactorySimple\getExternalLB().
Wikimedia\Rdbms\LBFactorySimple::getAllMainLBs | ( | ) |
Get cached (tracked) load balancers for all main database clusters.
The default cluster name is ILoadBalancer::CLUSTER_MAIN_DEFAULT
Implements Wikimedia\Rdbms\ILBFactory.
Definition at line 106 of file LBFactorySimple.php.
References Wikimedia\Rdbms\LBFactorySimple\getMainLB().
Wikimedia\Rdbms\LBFactorySimple::getExternalLB | ( | $cluster | ) |
Get a cached (tracked) load balancer for external storage.
string | $cluster | External storage cluster name |
Implements Wikimedia\Rdbms\ILBFactory.
Definition at line 98 of file LBFactorySimple.php.
References Wikimedia\Rdbms\LBFactory\getOwnershipId(), and Wikimedia\Rdbms\LBFactorySimple\newExternalLB().
Referenced by Wikimedia\Rdbms\LBFactorySimple\getAllExternalLBs().
Wikimedia\Rdbms\LBFactorySimple::getMainLB | ( | $domain = false | ) |
Get a cached (tracked) load balancer object.
bool | string | $domain | Domain ID, or false for the current domain |
Implements Wikimedia\Rdbms\ILBFactory.
Definition at line 82 of file LBFactorySimple.php.
References Wikimedia\Rdbms\LBFactorySimple\$mainLB, Wikimedia\Rdbms\LBFactory\getOwnershipId(), and Wikimedia\Rdbms\LBFactorySimple\newMainLB().
Referenced by Wikimedia\Rdbms\LBFactorySimple\getAllMainLBs().
Wikimedia\Rdbms\LBFactorySimple::newExternalLB | ( | $cluster, | |
$owner = null |
|||
) |
Create a new load balancer for external storage.
The resulting object will be untracked, not chronology-protected, and the caller is responsible for cleaning it up.
This method is for only advanced usage and callers should almost always use getExternalLB() instead. This method can be useful when a table is used as a key/value store. In that cases, one might want to query it in autocommit mode (DBO_TRX off) but still use DBO_TRX transaction rounds on other tables.
string | $cluster | External storage cluster name |
int | null | $owner | Owner ID of the new instance (e.g. this LBFactory ID) |
Implements Wikimedia\Rdbms\ILBFactory.
Definition at line 90 of file LBFactorySimple.php.
References Wikimedia\Rdbms\LBFactorySimple\newLoadBalancer().
Referenced by Wikimedia\Rdbms\LBFactorySimple\getExternalLB().
|
private |
Definition at line 119 of file LBFactorySimple.php.
References Wikimedia\Rdbms\LBFactory\baseLoadBalancerParams(), and Wikimedia\Rdbms\LBFactory\initLoadBalancer().
Referenced by Wikimedia\Rdbms\LBFactorySimple\newExternalLB(), and Wikimedia\Rdbms\LBFactorySimple\newMainLB().
Wikimedia\Rdbms\LBFactorySimple::newMainLB | ( | $domain = false , |
|
$owner = null |
|||
) |
Create a new load balancer object.
The resulting object will be untracked, not chronology-protected, and the caller is responsible for cleaning it up.
This method is for only advanced usage and callers should almost always use getMainLB() instead. This method can be useful when a table is used as a key/value store. In that cases, one might want to query it in autocommit mode (DBO_TRX off) but still use DBO_TRX transaction rounds on other tables.
bool | string | $domain | Domain ID, or false for the current domain |
int | null | $owner | Owner ID of the new instance (e.g. this LBFactory ID) |
Implements Wikimedia\Rdbms\ILBFactory.
Definition at line 78 of file LBFactorySimple.php.
References Wikimedia\Rdbms\LBFactorySimple\newLoadBalancer().
Referenced by Wikimedia\Rdbms\LBFactorySimple\getMainLB().
|
private |
Definition at line 35 of file LBFactorySimple.php.
|
private |
Map of (cluster => server index => server config map)
Definition at line 40 of file LBFactorySimple.php.
|
private |
Definition at line 43 of file LBFactorySimple.php.
|
private |
Definition at line 33 of file LBFactorySimple.php.
Referenced by Wikimedia\Rdbms\LBFactorySimple\getMainLB().
|
private |
Map of (server index => server config map)
Definition at line 38 of file LBFactorySimple.php.