MediaWiki
1.28.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 tracked load balancer The callback is called with the load balancer as the first parameter, and $params passed as the subsequent parameters. More... | |
getExternalLB ($cluster) | |
Get a cached (tracked) load balancer for external storage. More... | |
getMainLB ($domain=false) | |
newExternalLB ($cluster) | |
Create a new load balancer for external storage. More... | |
newMainLB ($domain=false) | |
![]() | |
__construct (array $conf) | |
Construct a manager of ILoadBalancer objects. More... | |
__destruct () | |
appendPreShutdownTimeAsQuery ($url, $time) | |
Append ?cpPosTime 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 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... | |
getChronologyProtectorTouched ($dbName) | |
getEmptyTransactionTicket ($fname) | |
Get a token asserting that no transaction writes are active. More... | |
getExternalLB ($cluster) | |
getMainLB ($domain=false) | |
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... | |
laggedReplicaUsed () | |
Detemine if any lagged replica DB connection was used. More... | |
newExternalLB ($cluster) | |
newMainLB ($domain=false) | |
rollbackMasterChanges ($fname=__METHOD__) | |
Rollback changes on all master connections. More... | |
setAgentName ($agent) | |
setDomainPrefix ($prefix) | |
Set a new table prefix for the existing local domain ID for testing. More... | |
setRequestInfo (array $info) | |
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) | |
Prepare all tracked 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) | |
Private Attributes | |
array[] | $externalClusters = [] |
Map of (cluster => (server index => server config)) More... | |
LoadBalancer[] | $extLBs = [] |
string | $loadMonitorClass |
LoadBalancer | $mainLB |
array[] | $servers = [] |
Map of (server index => server config) More... | |
Additional Inherited Members | |
![]() | |
const | SHUTDOWN_CHRONPROT_ASYNC = 1 |
const | SHUTDOWN_CHRONPROT_SYNC = 2 |
const | SHUTDOWN_NO_CHRONPROT = 0 |
![]() | |
baseLoadBalancerParams () | |
Base parameters to LoadBalancer::__construct() More... | |
forEachLBCallMethod ($methodName, array $args=[]) | |
Call a method of each tracked load balancer. More... | |
getChronologyProtector () | |
getScopedPHPBehaviorForCommit () | |
Make PHP ignore user aborts/disconnects until the returned value leaves scope. More... | |
initLoadBalancer (ILoadBalancer $lb) | |
shutdownChronologyProtector (ChronologyProtector $cp, $workCallback, $mode) | |
Get and record all of the staged DB positions into persistent memory storage. More... | |
![]() | |
string | $agent |
Agent name for query profiling. More... | |
ChronologyProtector | $chronProt |
bool | $cliMode |
Whether this PHP instance is for a CLI script. More... | |
LoggerInterface | $connLogger |
callable | $errorLogger |
Error logger. More... | |
string | $hostname |
Local hostname of the app server. More... | |
DatabaseDomain | $localDomain |
Local domain. More... | |
BagOStuff | $memCache |
LoggerInterface | $perfLogger |
object string | $profiler |
Class name or object With profileIn/profileOut methods. More... | |
LoggerInterface | $queryLogger |
string bool | $readOnlyReason = false |
Reason all LBs are read-only or false if not. More... | |
callable[] | $replicationWaitCallbacks = [] |
LoggerInterface | $replLogger |
array | $requestInfo |
Web request information about the client. More... | |
BagOStuff | $srvCache |
mixed | $ticket |
TransactionProfiler | $trxProfiler |
string bool | $trxRoundId = false |
String if a requested DBO_TRX transaction round is active. More... | |
WANObjectCache | $wanCache |
A simple single-master LBFactory that gets its configuration from the b/c globals.
Definition at line 27 of file LBFactorySimple.php.
LBFactorySimple::__construct | ( | array | $conf | ) |
array | $conf | Parameters of LBFactory::__construct() as well as:
|
Implements ILBFactory.
Definition at line 53 of file LBFactorySimple.php.
LBFactorySimple::forEachLB | ( | $callback, | |
array | $params = [] |
||
) |
Execute a function for each tracked 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 ILBFactory.
Definition at line 132 of file LBFactorySimple.php.
LBFactorySimple::getExternalLB | ( | $cluster | ) |
Get a cached (tracked) load balancer for external storage.
string | $cluster | External storage cluster name |
Implements ILBFactory.
Definition at line 102 of file LBFactorySimple.php.
References LBFactory\getChronologyProtector(), and newExternalLB().
LBFactorySimple::getMainLB | ( | $domain = false | ) |
bool | string | $domain |
Implements ILBFactory.
Definition at line 85 of file LBFactorySimple.php.
References $mainLB, LBFactory\getChronologyProtector(), and newMainLB().
LBFactorySimple::newExternalLB | ( | $cluster | ) |
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 |
Implements ILBFactory.
Definition at line 94 of file LBFactorySimple.php.
References newLoadBalancer().
Referenced by getExternalLB().
|
private |
Definition at line 111 of file LBFactorySimple.php.
References LBFactory\baseLoadBalancerParams(), and LBFactory\initLoadBalancer().
Referenced by newExternalLB(), and newMainLB().
LBFactorySimple::newMainLB | ( | $domain = false | ) |
bool | string | $domain |
Implements ILBFactory.
Definition at line 77 of file LBFactorySimple.php.
References newLoadBalancer(), and servers.
Referenced by getMainLB().
|
private |
Map of (cluster => (server index => server config))
Definition at line 36 of file LBFactorySimple.php.
|
private |
Definition at line 31 of file LBFactorySimple.php.
|
private |
Definition at line 39 of file LBFactorySimple.php.
|
private |
Definition at line 29 of file LBFactorySimple.php.
Referenced by getMainLB().
|
private |
Map of (server index => server config)
Definition at line 34 of file LBFactorySimple.php.