MediaWiki REL1_37
Wikimedia\Rdbms\LoadBalancerSingle Class Reference

Trivial LoadBalancer that always returns an injected connection handle. More...

Inheritance diagram for Wikimedia\Rdbms\LoadBalancerSingle:
Collaboration diagram for Wikimedia\Rdbms\LoadBalancerSingle:

Public Member Functions

 __construct (array $params)
 You probably want to use newFromConnection instead.
 
 __destruct ()
 
- Public Member Functions inherited from Wikimedia\Rdbms\LoadBalancer
 allowLagged ( $mode=null)
 Disables/enables lag checks.
 
 approveMasterChanges (array $options, $fname=__METHOD__, $owner=null)
 
 approvePrimaryChanges (array $options, $fname=__METHOD__, $owner=null)
 Perform all pre-commit checks for things like replication safety.
 
 beginMasterChanges ( $fname=__METHOD__, $owner=null)
 
 beginPrimaryChanges ( $fname=__METHOD__, $owner=null)
 Flush any primary transaction snapshots and set DBO_TRX (if DBO_DEFAULT is set)
 
 closeAll ( $fname=__METHOD__, $owner=null)
 Close all open connections.
 
 closeConnection (IDatabase $conn)
 Close a connection.
 
 commitAll ( $fname=__METHOD__, $owner=null)
 Commit transactions on all open connections.
 
 commitMasterChanges ( $fname=__METHOD__, $owner=null)
 
 commitPrimaryChanges ( $fname=__METHOD__, $owner=null)
 Issue COMMIT on all open primary connections to flush changes and view snapshots.
 
 disable ( $fname=__METHOD__, $owner=null)
 Close all connections and disable this load balancer.
 
 finalizeMasterChanges ( $fname=__METHOD__, $owner=null)
 
 finalizePrimaryChanges ( $fname=__METHOD__, $owner=null)
 Run pre-commit callbacks and defer execution of post-commit callbacks.
 
 flushMasterSnapshots ( $fname=__METHOD__, $owner=null)
 
 flushPrimarySnapshots ( $fname=__METHOD__, $owner=null)
 Commit all primary DB transactions so as to flush any REPEATABLE-READ or SSI snapshots.
 
 flushReplicaSnapshots ( $fname=__METHOD__, $owner=null)
 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.
 
 forEachOpenMasterConnection ( $callback, array $params=[])
 
 forEachOpenPrimaryConnection ( $callback, array $params=[])
 Call a function with each open connection object to a primary.
 
 forEachOpenReplicaConnection ( $callback, array $params=[])
 Call a function with each open replica DB connection object.
 
 getAnyOpenConnection ( $i, $flags=0)
 Get an existing live 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 live handle for a specific or virtual (DB_PRIMARY/DB_REPLICA) server index.
 
 getConnectionRef ( $i, $groups=[], $domain=false, $flags=0)
 Get a live database handle reference for a server index.
 
 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 reference 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 live database handle, suitable for migrations and schema changes, for a server index.
 
 getMasterPos ()
 
 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 live 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.
 
 getTransactionRoundStage ()
 
 getWriterIndex ()
 Get the specific server index of the primary server.
 
 hasMasterChanges ()
 
 hasMasterConnection ()
 
 hasOrMadeRecentMasterChanges ( $age=null)
 
 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.
 
 haveIndex ( $i)
 Returns true if the specified index is a valid server index.
 
 isNonZeroLoad ( $i)
 Returns true if the specified index is valid and has non-zero load.
 
 laggedReplicaUsed ()
 Checks whether the database for generic connections this request was both:
 
 lastMasterChangeTimestamp ()
 
 lastPrimaryChangeTimestamp ()
 Get the timestamp of the latest write query done by this thread.
 
 openConnection ( $i, $domain=false, $flags=0)
 
 pendingMasterChangeCallers ()
 
 pendingPrimaryChangeCallers ()
 Get the list of callers that have pending primary changes.
 
 pingAll ()
 
 redefineLocalDomain ( $domain)
 Close all connection and redefine the local domain for testing or schema creation.
 
 resolveDomainID ( $domain)
 
 reuseConnection (IDatabase $conn)
 Mark a live handle as being available for reuse under a different database domain.
 
 rollbackMasterChanges ( $fname=__METHOD__, $owner=null)
 
 rollbackPrimaryChanges ( $fname=__METHOD__, $owner=null)
 Issue ROLLBACK only on primary, only if queries were done on connection.
 
 runMasterTransactionIdleCallbacks ( $fname=__METHOD__, $owner=null)
 
 runMasterTransactionListenerCallbacks ( $fname=__METHOD__, $owner=null)
 
 runPrimaryTransactionIdleCallbacks ( $fname=__METHOD__, $owner=null)
 Consume and run all pending post-COMMIT/ROLLBACK callbacks and commit dangling transactions.
 
 runPrimaryTransactionListenerCallbacks ( $fname=__METHOD__, $owner=null)
 Run all recurring post-COMMIT/ROLLBACK listener callbacks.
 
 safeGetLag (IDatabase $conn)
 Get the lag in seconds for a given connection, or zero if this load balancer does not have replication enabled.
 
 setDomainAliases (array $aliases)
 Convert certain database domains to alternative ones.
 
 setIndexAliases (array $aliases)
 Convert certain index names to alternative names before querying the DB.
 
 setLocalDomainPrefix ( $prefix)
 Set a new table prefix for the existing local domain ID for testing.
 
 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 handle query.
 
 waitForAll ( $pos, $timeout=null)
 Set the primary wait position and wait for ALL replica DBs to catch up to it.
 
 waitForMasterPos (IDatabase $conn, $pos=false, $timeout=null)
 
 waitForOne ( $pos, $timeout=null)
 Set the primary wait position and wait for a generic replica DB to catch up to it.
 
 waitForPrimaryPos (IDatabase $conn, $pos=false, $timeout=null)
 Wait for a replica DB to reach a specified primary position.
 

Static Public Member Functions

static newFromConnection (IDatabase $db, array $params=[])
 

Protected Member Functions

 reallyOpenConnection ( $i, DatabaseDomain $domain, array $lbInfo=[])
 Open a new network connection to a server (uncached)
 
- Protected Member Functions inherited from Wikimedia\Rdbms\LoadBalancer
 getConnLogContext (IDatabase $conn, array $extras=[])
 Create a log context to pass to PSR-3 logger functions.
 
 getExistingReaderIndex ( $group)
 Get the server index chosen by the load balancer for use with the given query group.
 
 resolveDomainInstance ( $domain)
 

Private Attributes

IDatabase $db
 

Additional Inherited Members

- Public Attributes inherited from Wikimedia\Rdbms\LoadBalancer
const MAX_LAG_DEFAULT = 6
 Default 'maxLag' when unspecified.
 
- 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.
 
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.
 

Detailed Description

Trivial LoadBalancer that always returns an injected connection handle.

Definition at line 31 of file LoadBalancerSingle.php.

Constructor & Destructor Documentation

◆ __construct()

Wikimedia\Rdbms\LoadBalancerSingle::__construct ( array  $params)

You probably want to use newFromConnection instead.

Parameters
array$paramsAn associative array with one member:
  • connection: An IDatabase connection object

Reimplemented from Wikimedia\Rdbms\LoadBalancer.

Definition at line 41 of file LoadBalancerSingle.php.

◆ __destruct()

Wikimedia\Rdbms\LoadBalancerSingle::__destruct ( )

Reimplemented from Wikimedia\Rdbms\LoadBalancer.

Definition at line 88 of file LoadBalancerSingle.php.

Member Function Documentation

◆ newFromConnection()

static Wikimedia\Rdbms\LoadBalancerSingle::newFromConnection ( IDatabase  $db,
array  $params = [] 
)
static
Parameters
IDatabase$dbLive connection handle
array$paramsParameter map to LoadBalancerSingle::__constructs()
Returns
LoadBalancerSingle
Since
1.28

Definition at line 76 of file LoadBalancerSingle.php.

References Wikimedia\Rdbms\LoadBalancerSingle\$db, and Wikimedia\Rdbms\IDatabase\getDomainID().

◆ reallyOpenConnection()

Wikimedia\Rdbms\LoadBalancerSingle::reallyOpenConnection (   $i,
DatabaseDomain  $domain,
array  $lbInfo = [] 
)
protected

Open a new network connection to a server (uncached)

Returns a Database object whether or not the connection was successful.

Parameters
int$iSpecific server index
DatabaseDomain$domainDomain the connection is for, possibly unspecified
array$lbInfoAdditional information for setLBInfo()
Returns
IDatabase
Exceptions
DBAccessError
InvalidArgumentException

Reimplemented from Wikimedia\Rdbms\LoadBalancer.

Definition at line 84 of file LoadBalancerSingle.php.

References Wikimedia\Rdbms\LoadBalancerSingle\$db.

Member Data Documentation

◆ $db

IDatabase Wikimedia\Rdbms\LoadBalancerSingle::$db
private

The documentation for this class was generated from the following file: