MediaWiki
master
ILoadBalancer.php
Go to the documentation of this file.
1
<?php
23
namespace
Wikimedia\Rdbms
;
24
25
use InvalidArgumentException;
26
79
interface
ILoadBalancer
{
81
public
const
DB_REPLICA
= -1;
86
public
const
DB_PRIMARY
= -2;
87
88
// phpcs:disable MediaWiki.Usage.DeprecatedConstantUsage.DB_MASTER
93
public
const
DB_MASTER
=
self::DB_PRIMARY
;
94
// phpcs:enable MediaWiki.Usage.DeprecatedConstantUsage.DB_MASTER
95
97
public
const
DOMAIN_ANY
=
''
;
99
public
const
GROUP_GENERIC
=
''
;
100
102
public
const
CONN_TRX_AUTOCOMMIT
= 1;
104
public
const
CONN_SILENCE_ERRORS
= 2;
106
public
const
CONN_INTENT_WRITABLE
= 4;
108
public
const
CONN_REFRESH_READ_ONLY
= 8;
109
124
public
function
getClusterName
(): string;
125
133
public
function
getLocalDomainID
(): string;
134
140
public
function
resolveDomainID
( $domain ): string;
141
148
public
function
redefineLocalDomain
( $domain );
149
160
public
function
setTempTablesOnlyMode
( $value, $domain );
161
176
public
function
getReaderIndex
( $group =
false
, $domain =
false
);
177
191
public
function
waitFor
( $pos );
192
203
public
function
waitForAll
( $pos, $timeout =
null
);
204
218
public
function
getAnyOpenConnection
( $i, $flags = 0 );
219
276
public
function
getConnection
( $i, $groups = [], $domain =
false
, $flags = 0 );
277
295
public
function
getServerConnection
( $i, $domain, $flags = 0 );
296
301
public
function
reuseConnection
(
IDatabase
$conn );
302
307
public
function
reuseConnectionInternal
(
IDatabase
$conn );
308
317
public
function
getConnectionRef
( $i, $groups = [], $domain =
false
, $flags = 0 ):
IDatabase
;
318
327
public
function
getConnectionInternal
( $i, $groups = [], $domain =
false
, $flags = 0 ):
IDatabase
;
328
350
public
function
getLazyConnectionRef
( $i, $groups = [], $domain =
false
, $flags = 0 ):
IDatabase
;
351
373
public
function
getMaintenanceConnectionRef
( $i, $groups = [], $domain =
false
, $flags = 0 ):
DBConnRef
;
374
380
public
function
getWriterIndex
();
381
387
public
function
getServerCount
();
388
398
public
function
hasReplicaServers
();
399
419
public
function
hasStreamingReplicaServers
();
420
427
public
function
getServerName
( $i ): string;
428
436
public
function
getServerInfo
( $i );
437
445
public
function
getServerType
( $i );
446
454
public
function
getServerAttributes
( $i );
455
463
public
function
getPrimaryPos
();
464
480
public
function
getReplicaResumePos
();
481
490
public
function
closeConnection
(
IDatabase
$conn );
491
496
public
function
hasPrimaryConnection
();
497
503
public
function
hasPrimaryChanges
();
504
511
public
function
explicitTrxActive
();
512
518
public
function
lastPrimaryChangeTimestamp
();
519
528
public
function
hasOrMadeRecentPrimaryChanges
( $age =
null
);
529
535
public
function
getLaggedReplicaMode
( $domain =
false
);
536
545
public
function
laggedReplicaUsed
();
546
552
public
function
getReadOnlyReason
( $domain =
false
);
553
557
public
function
pingAll
();
558
569
public
function
getMaxLag
( $domain =
false
);
570
581
public
function
getLagTimes
( $domain =
false
);
582
596
public
function
waitForPrimaryPos
(
IDatabase
$conn, $pos =
false
, $timeout = 10 );
597
605
public
function
setTransactionListener
( $name, callable $callback =
null
);
606
619
public
function
setTableAliases
( array $aliases );
620
633
public
function
setIndexAliases
( array $aliases );
634
643
public
function
setDomainAliases
( array $aliases );
644
}
Wikimedia\Rdbms\DBConnRef
Helper class used for automatically marking an IDatabase connection as reusable (once it no longer ma...
Definition:
DBConnRef.php:29
Wikimedia\Rdbms\IDatabase
Basic database interface for live and lazy-loaded relation database handles.
Definition:
IDatabase.php:39
Wikimedia\Rdbms\ILoadBalancer
Database cluster connection, tracking, load balancing, and transaction manager interface.
Definition:
ILoadBalancer.php:79
Wikimedia\Rdbms\ILoadBalancer\getClusterName
getClusterName()
Get the logical name of the database cluster.
Wikimedia\Rdbms\ILoadBalancer\reuseConnection
reuseConnection(IDatabase $conn)
Wikimedia\Rdbms\ILoadBalancer\getConnection
getConnection( $i, $groups=[], $domain=false, $flags=0)
Get a lazy handle for a specific or virtual (DB_PRIMARY/DB_REPLICA) server index.
Wikimedia\Rdbms\ILoadBalancer\CONN_INTENT_WRITABLE
const CONN_INTENT_WRITABLE
Caller is requesting the primary DB server for possibly writes.
Definition:
ILoadBalancer.php:106
Wikimedia\Rdbms\ILoadBalancer\hasOrMadeRecentPrimaryChanges
hasOrMadeRecentPrimaryChanges( $age=null)
Check if this load balancer object had any recent or still pending writes issued against it by this P...
Wikimedia\Rdbms\ILoadBalancer\getServerType
getServerType( $i)
Get the RDBMS type of the server with the specified index (e.g.
Wikimedia\Rdbms\ILoadBalancer\GROUP_GENERIC
const GROUP_GENERIC
The generic query group.
Definition:
ILoadBalancer.php:99
Wikimedia\Rdbms\ILoadBalancer\getMaxLag
getMaxLag( $domain=false)
Get the name and lag time of the most-lagged replica server.
Wikimedia\Rdbms\ILoadBalancer\waitFor
waitFor( $pos)
Set the primary position to reach before the next generic group DB handle query.
Wikimedia\Rdbms\ILoadBalancer\getServerConnection
getServerConnection( $i, $domain, $flags=0)
Get a live handle for a specific server index.
Wikimedia\Rdbms\ILoadBalancer\getReadOnlyReason
getReadOnlyReason( $domain=false)
Wikimedia\Rdbms\ILoadBalancer\getReplicaResumePos
getReplicaResumePos()
Get the highest DB replication position for chronology control purposes.
Wikimedia\Rdbms\ILoadBalancer\setTransactionListener
setTransactionListener( $name, callable $callback=null)
Set a callback via IDatabase::setTransactionListener() on all current and future primary connections ...
Wikimedia\Rdbms\ILoadBalancer\reuseConnectionInternal
reuseConnectionInternal(IDatabase $conn)
Wikimedia\Rdbms\ILoadBalancer\getReaderIndex
getReaderIndex( $group=false, $domain=false)
Get the specific server index of the reader connection for a given group.
Wikimedia\Rdbms\ILoadBalancer\waitForPrimaryPos
waitForPrimaryPos(IDatabase $conn, $pos=false, $timeout=10)
Wait for a replica DB to reach a specified primary position.
Wikimedia\Rdbms\ILoadBalancer\getLaggedReplicaMode
getLaggedReplicaMode( $domain=false)
Wikimedia\Rdbms\ILoadBalancer\DOMAIN_ANY
const DOMAIN_ANY
Domain specifier when no specific database needs to be selected.
Definition:
ILoadBalancer.php:97
Wikimedia\Rdbms\ILoadBalancer\DB_REPLICA
const DB_REPLICA
Request a replica DB connection.
Definition:
ILoadBalancer.php:81
Wikimedia\Rdbms\ILoadBalancer\CONN_TRX_AUTOCOMMIT
const CONN_TRX_AUTOCOMMIT
DB handle should have DBO_TRX disabled and the caller will leave it as such.
Definition:
ILoadBalancer.php:102
Wikimedia\Rdbms\ILoadBalancer\setTableAliases
setTableAliases(array $aliases)
Make certain table names use their own database, schema, and table prefix when passed into SQL querie...
Wikimedia\Rdbms\ILoadBalancer\redefineLocalDomain
redefineLocalDomain( $domain)
Close all connection and redefine the local domain for testing or schema creation.
Wikimedia\Rdbms\ILoadBalancer\CONN_SILENCE_ERRORS
const CONN_SILENCE_ERRORS
Return null on connection failure instead of throwing an exception.
Definition:
ILoadBalancer.php:104
Wikimedia\Rdbms\ILoadBalancer\setTempTablesOnlyMode
setTempTablesOnlyMode( $value, $domain)
Indicate whether the tables on this domain are only temporary tables for testing.
Wikimedia\Rdbms\ILoadBalancer\resolveDomainID
resolveDomainID( $domain)
Wikimedia\Rdbms\ILoadBalancer\getWriterIndex
getWriterIndex()
Get the specific server index of the primary server.
Wikimedia\Rdbms\ILoadBalancer\setDomainAliases
setDomainAliases(array $aliases)
Convert certain database domains to alternative ones.
Wikimedia\Rdbms\ILoadBalancer\laggedReplicaUsed
laggedReplicaUsed()
Checks whether the database for generic connections this request was both:
Wikimedia\Rdbms\ILoadBalancer\getServerCount
getServerCount()
Get the number of servers defined in configuration.
Wikimedia\Rdbms\ILoadBalancer\getLocalDomainID
getLocalDomainID()
Get the local (and default) database domain ID of connection handles.
Wikimedia\Rdbms\ILoadBalancer\getServerInfo
getServerInfo( $i)
Return the server configuration map for the server with the specified index.
Wikimedia\Rdbms\ILoadBalancer\CONN_REFRESH_READ_ONLY
const CONN_REFRESH_READ_ONLY
Bypass and update any server-side read-only mode state cache.
Definition:
ILoadBalancer.php:108
Wikimedia\Rdbms\ILoadBalancer\getConnectionRef
getConnectionRef( $i, $groups=[], $domain=false, $flags=0)
Wikimedia\Rdbms\ILoadBalancer\hasPrimaryChanges
hasPrimaryChanges()
Whether there are pending changes or callbacks in a transaction by this thread.
Wikimedia\Rdbms\ILoadBalancer\getPrimaryPos
getPrimaryPos()
Get the current primary replication position.
Wikimedia\Rdbms\ILoadBalancer\getMaintenanceConnectionRef
getMaintenanceConnectionRef( $i, $groups=[], $domain=false, $flags=0)
Get a live database handle, suitable for migrations and schema changes, for a server index.
Wikimedia\Rdbms\ILoadBalancer\setIndexAliases
setIndexAliases(array $aliases)
Convert certain index names to alternative names before querying the DB.
Wikimedia\Rdbms\ILoadBalancer\getLazyConnectionRef
getLazyConnectionRef( $i, $groups=[], $domain=false, $flags=0)
Get a lazy-connecting database handle reference for a server index.
Wikimedia\Rdbms\ILoadBalancer\explicitTrxActive
explicitTrxActive()
Determine whether an explicit transaction is active on any open primary connection.
Wikimedia\Rdbms\ILoadBalancer\hasPrimaryConnection
hasPrimaryConnection()
Wikimedia\Rdbms\ILoadBalancer\lastPrimaryChangeTimestamp
lastPrimaryChangeTimestamp()
Get the timestamp of the latest write query done by this thread.
Wikimedia\Rdbms\ILoadBalancer\DB_MASTER
const DB_MASTER
Request a primary, write-enabled DB connection.
Definition:
ILoadBalancer.php:93
Wikimedia\Rdbms\ILoadBalancer\DB_PRIMARY
const DB_PRIMARY
Request a primary, write-enabled DB connection.
Definition:
ILoadBalancer.php:86
Wikimedia\Rdbms\ILoadBalancer\closeConnection
closeConnection(IDatabase $conn)
Close a connection.
Wikimedia\Rdbms\ILoadBalancer\getConnectionInternal
getConnectionInternal( $i, $groups=[], $domain=false, $flags=0)
Wikimedia\Rdbms\ILoadBalancer\hasReplicaServers
hasReplicaServers()
Whether there are any replica servers configured.
Wikimedia\Rdbms\ILoadBalancer\getLagTimes
getLagTimes( $domain=false)
Get an estimate of replication lag (in seconds) for each server.
Wikimedia\Rdbms\ILoadBalancer\hasStreamingReplicaServers
hasStreamingReplicaServers()
Whether any replica servers use streaming replication from the primary server.
Wikimedia\Rdbms\ILoadBalancer\pingAll
pingAll()
Wikimedia\Rdbms\ILoadBalancer\getServerName
getServerName( $i)
Get the readable name of the server with the specified index.
Wikimedia\Rdbms\ILoadBalancer\getServerAttributes
getServerAttributes( $i)
Get basic attributes of the server with the specified index without connecting.
Wikimedia\Rdbms\ILoadBalancer\waitForAll
waitForAll( $pos, $timeout=null)
Set the primary wait position and wait for ALL replica DBs to catch up to it.
Wikimedia\Rdbms\ILoadBalancer\getAnyOpenConnection
getAnyOpenConnection( $i, $flags=0)
Get an existing live handle to the given server index (on any domain)
Wikimedia\Rdbms
Definition:
ChronologyProtector.php:24
includes
libs
rdbms
loadbalancer
ILoadBalancer.php
Generated on Sat Jun 25 2022 20:09:19 for MediaWiki by
1.9.1