MediaWiki
master
|
Internal interface for LoadBalancer methods used by LBFactory. More...
Public Member Functions | |
__construct (array $params) | |
approvePrimaryChanges (int $maxWriteDuration, $fname=__METHOD__) | |
Perform all pre-commit checks for things like replication safety. More... | |
beginPrimaryChanges ( $fname=__METHOD__) | |
Flush any primary transaction snapshots and set DBO_TRX (if DBO_DEFAULT is set) More... | |
closeAll ( $fname=__METHOD__) | |
Close all open connections. More... | |
commitPrimaryChanges ( $fname=__METHOD__) | |
Issue COMMIT on all open primary connections to flush changes and view snapshots. More... | |
disable ( $fname=__METHOD__) | |
Close all connections and disable this load balancer. More... | |
finalizePrimaryChanges ( $fname=__METHOD__) | |
Run pre-commit callbacks and defer execution of post-commit callbacks. More... | |
flushPrimarySessions ( $fname=__METHOD__) | |
Release/destroy session-level named locks, table locks, and temp tables. More... | |
flushPrimarySnapshots ( $fname=__METHOD__) | |
Commit all primary DB transactions so as to flush any REPEATABLE-READ or SSI snapshots. More... | |
flushReplicaSnapshots ( $fname=__METHOD__) | |
Commit all replica DB transactions so as to flush any REPEATABLE-READ or SSI snapshots. More... | |
pendingPrimaryChangeCallers () | |
Get the list of callers that have pending primary changes. More... | |
reconfigure (array $conf) | |
Reconfigure using the given config array. More... | |
rollbackPrimaryChanges ( $fname=__METHOD__) | |
Issue ROLLBACK only on primary, only if queries were done on connection. More... | |
runPrimaryTransactionIdleCallbacks ( $fname=__METHOD__) | |
Consume and run all pending post-COMMIT/ROLLBACK callbacks and commit dangling transactions. More... | |
runPrimaryTransactionListenerCallbacks ( $fname=__METHOD__) | |
Run all recurring post-COMMIT/ROLLBACK listener callbacks. More... | |
setLocalDomainPrefix ( $prefix) | |
Set a new table prefix for the existing local domain ID for testing. More... | |
![]() | |
closeConnection (IDatabase $conn) | |
Close a connection. More... | |
explicitTrxActive () | |
Determine whether an explicit transaction is active on any open primary connection. More... | |
getAnyOpenConnection ( $i, $flags=0) | |
Get an existing DB handle to the given server index (on any domain) More... | |
getClusterName () | |
Get the name of the overall cluster of database servers managing the dataset. More... | |
getConnection ( $i, $groups=[], $domain=false, $flags=0) | |
Get a lazy-connecting database handle for a specific or virtual (DB_PRIMARY/DB_REPLICA) server index. More... | |
getConnectionInternal ( $i, $groups=[], $domain=false, $flags=0) | |
getConnectionRef ( $i, $groups=[], $domain=false, $flags=0) | |
getLagTimes () | |
Get an estimate of replication lag (in seconds) for each server. More... | |
getLocalDomainID () | |
Get the local (and default) database domain ID of connection handles. More... | |
getMaintenanceConnectionRef ( $i, $groups=[], $domain=false, $flags=0) | |
Get a DB handle, suitable for migrations and schema changes, for a server index. More... | |
getMaxLag () | |
Get the name and lag time of the most-lagged replica server. More... | |
getPrimaryPos () | |
Get the current primary replication position. More... | |
getReaderIndex ( $group=false) | |
Get the specific server index of the reader connection for a given group. More... | |
getReadOnlyReason ( $domain=false) | |
getReplicaResumePos () | |
Get the highest DB replication position for chronology control purposes. More... | |
getServerAttributes ( $i) | |
Get basic attributes of the server with the specified index without connecting. More... | |
getServerConnection ( $i, $domain, $flags=0) | |
Get a DB handle for a specific server index. More... | |
getServerCount () | |
Get the number of servers defined in configuration. More... | |
getServerInfo ( $i) | |
Return the server configuration map for the server with the specified index. More... | |
getServerName ( $i) | |
Get the readable name of the server with the specified index. More... | |
getServerType ( $i) | |
Get the RDBMS type of the server with the specified index (e.g. More... | |
getWriterIndex () | |
Get the specific server index of the "writer server". More... | |
hasOrMadeRecentPrimaryChanges ( $age=null) | |
Check if this load balancer object had any recent or still pending writes issued against it by this PHP thread. More... | |
hasPrimaryChanges () | |
Whether there are pending changes or callbacks in a transaction by this thread. More... | |
hasPrimaryConnection () | |
hasReplicaServers () | |
Whether there are any replica servers configured. More... | |
hasStreamingReplicaServers () | |
Whether any replica servers use streaming replication from the primary server. More... | |
laggedReplicaUsed () | |
Whether a highly "lagged" replica database connection was queried. More... | |
lastPrimaryChangeTimestamp () | |
Get the timestamp of the latest write query done by this thread. More... | |
pingAll () | |
redefineLocalDomain ( $domain) | |
Close all connection and redefine the local domain for testing or schema creation. More... | |
resolveDomainID ( $domain) | |
reuseConnection (IDatabase $conn) | |
setDomainAliases (array $aliases) | |
Convert certain database domains to alternative ones. More... | |
setIndexAliases (array $aliases) | |
Convert certain index names to alternative names before querying the DB. More... | |
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... | |
setTempTablesOnlyMode ( $value, $domain) | |
Indicate whether the tables on this domain are only temporary tables for testing. More... | |
setTransactionListener ( $name, callable $callback=null) | |
Set a callback via IDatabase::setTransactionListener() on all current and future primary connections of this load balancer. More... | |
waitFor (DBPrimaryPos $pos) | |
Set the primary position to reach before the next generic group DB query. More... | |
waitForAll (DBPrimaryPos $pos, $timeout=null) | |
Set the primary wait position and wait for ALL replica DBs to catch up to it. More... | |
waitForPrimaryPos (IDatabase $conn) | |
Wait for a replica DB to reach a specified primary position. More... | |
Public Attributes | |
const | STAGE_POSTCOMMIT_CALLBACKS = 'stage-postcommit-callbacks' |
Manager of ILoadBalancer instances is running post-commit callbacks. More... | |
const | STAGE_POSTROLLBACK_CALLBACKS = 'stage-postrollback-callbacks' |
Manager of ILoadBalancer instances is running post-rollback callbacks. More... | |
![]() | |
const | CONN_INTENT_WRITABLE = 8 |
Caller is requesting the primary DB server for possibly writes. More... | |
const | CONN_REFRESH_READ_ONLY = 16 |
Bypass and update any server-side read-only mode state cache. More... | |
const | CONN_SILENCE_ERRORS = 4 |
Yield null on connection failure instead of throwing an exception. More... | |
const | CONN_TRX_AUTOCOMMIT = 2 |
Yield a tracked autocommit-mode handle (reuse existing ones) More... | |
const | CONN_UNTRACKED_GAUGE = 1 |
Yield an untracked, low-timeout, autocommit-mode handle (to gauge server health) More... | |
const | DB_MASTER = self::DB_PRIMARY |
Request a primary, write-enabled DB connection. More... | |
const | DB_PRIMARY = -2 |
Request a primary, write-enabled DB connection. More... | |
const | DB_REPLICA = -1 |
Request a replica DB connection. More... | |
const | DOMAIN_ANY = '' |
Domain specifier when no specific database needs to be selected. More... | |
const | GROUP_GENERIC = '' |
The generic query group. More... | |
Internal interface for LoadBalancer methods used by LBFactory.
Used by untracked objects returned from newMainLB().
Definition at line 33 of file ILoadBalancerForOwner.php.
Wikimedia\Rdbms\ILoadBalancerForOwner::__construct | ( | array | $params | ) |
array | $params | Parameter map with keys:
|
Implemented in Wikimedia\Rdbms\LoadBalancerSingle, and Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::approvePrimaryChanges | ( | int | $maxWriteDuration, |
$fname = __METHOD__ |
|||
) |
Perform all pre-commit checks for things like replication safety.
Use this only for multi-database commits
int | $maxWriteDuration | : max write query duration time in seconds |
string | $fname | Caller name |
DBTransactionError |
Implemented in Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::beginPrimaryChanges | ( | $fname = __METHOD__ | ) |
Flush any primary transaction snapshots and set DBO_TRX (if DBO_DEFAULT is set)
The DBO_TRX setting will be reverted to the default in each of these methods:
string | $fname | Caller name |
DBExpectedError |
Implemented in Wikimedia\Rdbms\LoadBalancer.
Referenced by Wikimedia\Rdbms\LBFactory\initLoadBalancer().
Wikimedia\Rdbms\ILoadBalancerForOwner::closeAll | ( | $fname = __METHOD__ | ) |
Close all open connections.
string | $fname | Caller name |
Implemented in Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::commitPrimaryChanges | ( | $fname = __METHOD__ | ) |
Issue COMMIT on all open primary connections to flush changes and view snapshots.
string | $fname | Caller name |
DBExpectedError |
Implemented in Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::disable | ( | $fname = __METHOD__ | ) |
Close all connections and disable this load balancer.
Any attempt to open a new connection will result in a DBAccessError.
string | $fname | Caller name |
Implemented in Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::finalizePrimaryChanges | ( | $fname = __METHOD__ | ) |
Run pre-commit callbacks and defer execution of post-commit callbacks.
Use this only for multi-database commits
string | $fname | Caller name |
Implemented in Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::flushPrimarySessions | ( | $fname = __METHOD__ | ) |
Release/destroy session-level named locks, table locks, and temp tables.
Only call this function right after calling rollbackPrimaryChanges()
string | $fname | Caller name |
DBExpectedError |
Implemented in Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::flushPrimarySnapshots | ( | $fname = __METHOD__ | ) |
Commit all primary DB transactions so as to flush any REPEATABLE-READ or SSI snapshots.
An error will be thrown if a connection has pending writes or callbacks
string | $fname | Caller name |
Implemented in Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::flushReplicaSnapshots | ( | $fname = __METHOD__ | ) |
Commit all replica DB transactions so as to flush any REPEATABLE-READ or SSI snapshots.
string | $fname | Caller name |
Implemented in Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::pendingPrimaryChangeCallers | ( | ) |
Get the list of callers that have pending primary changes.
Implemented in Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::reconfigure | ( | array | $conf | ) |
Reconfigure using the given config array.
If the config changed, this invalidates all existing connections.
array | $conf | A configuration array, using the same structure as the one passed to the LoadBalancer's constructor. |
Implemented in Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::rollbackPrimaryChanges | ( | $fname = __METHOD__ | ) |
Issue ROLLBACK only on primary, only if queries were done on connection.
string | $fname | Caller name |
DBExpectedError |
Implemented in Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::runPrimaryTransactionIdleCallbacks | ( | $fname = __METHOD__ | ) |
Consume and run all pending post-COMMIT/ROLLBACK callbacks and commit dangling transactions.
string | $fname | Caller name |
Implemented in Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::runPrimaryTransactionListenerCallbacks | ( | $fname = __METHOD__ | ) |
Run all recurring post-COMMIT/ROLLBACK listener callbacks.
string | $fname | Caller name |
Implemented in Wikimedia\Rdbms\LoadBalancer.
Wikimedia\Rdbms\ILoadBalancerForOwner::setLocalDomainPrefix | ( | $prefix | ) |
Set a new table prefix for the existing local domain ID for testing.
string | $prefix |
Implemented in Wikimedia\Rdbms\LoadBalancer.
const Wikimedia\Rdbms\ILoadBalancerForOwner::STAGE_POSTCOMMIT_CALLBACKS = 'stage-postcommit-callbacks' |
Manager of ILoadBalancer instances is running post-commit callbacks.
Definition at line 35 of file ILoadBalancerForOwner.php.
const Wikimedia\Rdbms\ILoadBalancerForOwner::STAGE_POSTROLLBACK_CALLBACKS = 'stage-postrollback-callbacks' |
Manager of ILoadBalancer instances is running post-rollback callbacks.
Definition at line 37 of file ILoadBalancerForOwner.php.