|
MediaWiki REL1_39
|
Internal interface for LoadBalancer methods used by LBFactory. More...


Public Member Functions | |
| __construct (array $params) | |
| approvePrimaryChanges (array $options, $fname=__METHOD__) | |
| Perform all pre-commit checks for things like replication safety. | |
| beginPrimaryChanges ( $fname=__METHOD__) | |
| Flush any primary transaction snapshots and set DBO_TRX (if DBO_DEFAULT is set) | |
| closeAll ( $fname=__METHOD__) | |
| Close all open connections. | |
| commitAll ( $fname=__METHOD__) | |
| Commit transactions on all open connections. | |
| commitPrimaryChanges ( $fname=__METHOD__) | |
| Issue COMMIT on all open primary connections to flush changes and view snapshots. | |
| disable ( $fname=__METHOD__) | |
| Close all connections and disable this load balancer. | |
| finalizePrimaryChanges ( $fname=__METHOD__) | |
| Run pre-commit callbacks and defer execution of post-commit callbacks. | |
| flushPrimarySessions ( $fname=__METHOD__) | |
| Release/destroy session-level named locks, table locks, and temp tables. | |
| flushPrimarySnapshots ( $fname=__METHOD__) | |
| Commit all primary DB transactions so as to flush any REPEATABLE-READ or SSI snapshots. | |
| flushReplicaSnapshots ( $fname=__METHOD__) | |
| Commit all replica DB transactions so as to flush any REPEATABLE-READ or SSI snapshots. | |
| forEachOpenConnection ( $callback, array $params=[]) | |
| Call a function with each open connection object. | |
| forEachOpenPrimaryConnection ( $callback, array $params=[]) | |
| Call a function with each open connection object to a primary. | |
| pendingPrimaryChangeCallers () | |
| Get the list of callers that have pending primary changes. | |
| reconfigure (array $conf) | |
| Reconfigure using the given config array. | |
| rollbackPrimaryChanges ( $fname=__METHOD__) | |
| Issue ROLLBACK only on primary, only if queries were done on connection. | |
| runPrimaryTransactionIdleCallbacks ( $fname=__METHOD__) | |
| Consume and run all pending post-COMMIT/ROLLBACK callbacks and commit dangling transactions. | |
| runPrimaryTransactionListenerCallbacks ( $fname=__METHOD__) | |
| Run all recurring post-COMMIT/ROLLBACK listener callbacks. | |
| setLocalDomainPrefix ( $prefix) | |
| Set a new table prefix for the existing local domain ID for testing. | |
Public Member Functions inherited from Wikimedia\Rdbms\ILoadBalancer | |
| closeConnection (IDatabase $conn) | |
| Close a connection. | |
| explicitTrxActive () | |
| Determine whether an explicit transaction is active on any open primary connection. | |
| getAnyOpenConnection ( $i, $flags=0) | |
| Get an existing DB handle to the given server index (on any domain) | |
| getClusterName () | |
| Get the logical name of the database cluster. | |
| getConnection ( $i, $groups=[], $domain=false, $flags=0) | |
| Get a lazy-connecting database handle for a specific or virtual (DB_PRIMARY/DB_REPLICA) server index. | |
| getConnectionInternal ( $i, $groups=[], $domain=false, $flags=0) | |
| getConnectionRef ( $i, $groups=[], $domain=false, $flags=0) | |
| getLaggedReplicaMode ( $domain=false) | |
| getLagTimes ( $domain=false) | |
| Get an estimate of replication lag (in seconds) for each server. | |
| getLazyConnectionRef ( $i, $groups=[], $domain=false, $flags=0) | |
| Get a lazy-connecting database handle for a server index. | |
| getLocalDomainID () | |
| Get the local (and default) database domain ID of connection handles. | |
| getMaintenanceConnectionRef ( $i, $groups=[], $domain=false, $flags=0) | |
| Get a DB handle, suitable for migrations and schema changes, for a server index. | |
| getMaxLag ( $domain=false) | |
| Get the name and lag time of the most-lagged replica server. | |
| getPrimaryPos () | |
| Get the current primary replication position. | |
| getReaderIndex ( $group=false, $domain=false) | |
| Get the specific server index of the reader connection for a given group. | |
| getReadOnlyReason ( $domain=false) | |
| getReplicaResumePos () | |
| Get the highest DB replication position for chronology control purposes. | |
| getServerAttributes ( $i) | |
| Get basic attributes of the server with the specified index without connecting. | |
| getServerConnection ( $i, $domain, $flags=0) | |
| Get a DB handle for a specific server index. | |
| getServerCount () | |
| Get the number of servers defined in configuration. | |
| getServerInfo ( $i) | |
| Return the server configuration map for the server with the specified index. | |
| getServerName ( $i) | |
| Get the readable name of the server with the specified index. | |
| getServerType ( $i) | |
| Get the RDBMS type of the server with the specified index (e.g. | |
| getWriterIndex () | |
| Get the specific server index of the primary server. | |
| hasOrMadeRecentPrimaryChanges ( $age=null) | |
| Check if this load balancer object had any recent or still pending writes issued against it by this PHP thread. | |
| hasPrimaryChanges () | |
| Whether there are pending changes or callbacks in a transaction by this thread. | |
| hasPrimaryConnection () | |
| hasReplicaServers () | |
| Whether there are any replica servers configured. | |
| hasStreamingReplicaServers () | |
| Whether any replica servers use streaming replication from the primary server. | |
| laggedReplicaUsed () | |
| Checks whether the database for generic connections this request was both: | |
| lastPrimaryChangeTimestamp () | |
| Get the timestamp of the latest write query done by this thread. | |
| pingAll () | |
| redefineLocalDomain ( $domain) | |
| Close all connection and redefine the local domain for testing or schema creation. | |
| resolveDomainID ( $domain) | |
| reuseConnection (IDatabase $conn) | |
| reuseConnectionInternal (IDatabase $conn) | |
| setDomainAliases (array $aliases) | |
| Convert certain database domains to alternative ones. | |
| setIndexAliases (array $aliases) | |
| Convert certain index names to alternative names before querying the DB. | |
| 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. | |
| setTempTablesOnlyMode ( $value, $domain) | |
| Indicate whether the tables on this domain are only temporary tables for testing. | |
| setTransactionListener ( $name, callable $callback=null) | |
| Set a callback via IDatabase::setTransactionListener() on all current and future primary connections of this load balancer. | |
| waitFor ( $pos) | |
| Set the primary position to reach before the next generic group DB query. | |
| waitForAll ( $pos, $timeout=null) | |
| Set the primary wait position and wait for ALL replica DBs to catch up to it. | |
| waitForPrimaryPos (IDatabase $conn, $pos=false, $timeout=10) | |
| Wait for a replica DB to reach a specified primary position. | |
Public Attributes | |
| const | STAGE_POSTCOMMIT_CALLBACKS = 'stage-postcommit-callbacks' |
| Manager of ILoadBalancer instances is running post-commit callbacks. | |
| const | STAGE_POSTROLLBACK_CALLBACKS = 'stage-postrollback-callbacks' |
| Manager of ILoadBalancer instances is running post-rollback callbacks. | |
Public Attributes inherited from Wikimedia\Rdbms\ILoadBalancer | |
| const | CONN_INTENT_WRITABLE = 4 |
| Caller is requesting the primary DB server for possibly writes. | |
| const | CONN_REFRESH_READ_ONLY = 8 |
| Bypass and update any server-side read-only mode state cache. | |
| const | CONN_SILENCE_ERRORS = 2 |
| Return null on connection failure instead of throwing an exception. | |
| const | CONN_TRX_AUTOCOMMIT = 1 |
| DB handle should have DBO_TRX disabled and the caller will leave it as such. | |
| const | DB_MASTER = self::DB_PRIMARY |
| Request a primary, write-enabled DB connection. | |
| const | DB_PRIMARY = -2 |
| Request a primary, write-enabled DB connection. | |
| const | DB_REPLICA = -1 |
| Request a replica DB connection. | |
| const | DOMAIN_ANY = '' |
| Domain specifier when no specific database needs to be selected. | |
| const | GROUP_GENERIC = '' |
| The generic query group. | |
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\LoadBalancer, and Wikimedia\Rdbms\LoadBalancerSingle.
| Wikimedia\Rdbms\ILoadBalancerForOwner::approvePrimaryChanges | ( | array | $options, |
| $fname = __METHOD__ ) |
Perform all pre-commit checks for things like replication safety.
Use this only for multi-database commits
| array | $options | Includes:
|
| 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::commitAll | ( | $fname = __METHOD__ | ) |
Commit transactions on all open connections.
| string | $fname | Caller name |
| DBExpectedError |
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::forEachOpenConnection | ( | $callback, | |
| array | $params = [] ) |
Call a function with each open connection object.
| callable | $callback | |
| array | $params |
Implemented in Wikimedia\Rdbms\LoadBalancer.
| Wikimedia\Rdbms\ILoadBalancerForOwner::forEachOpenPrimaryConnection | ( | $callback, | |
| array | $params = [] ) |
Call a function with each open connection object to a primary.
| callable | $callback | |
| array | $params |
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.