MediaWiki REL1_31
ILBFactory.php
Go to the documentation of this file.
1<?php
24namespace Wikimedia\Rdbms;
25
26use InvalidArgumentException;
27
33interface ILBFactory {
34 const SHUTDOWN_NO_CHRONPROT = 0; // don't save DB positions at all
35 const SHUTDOWN_CHRONPROT_ASYNC = 1; // save DB positions, but don't wait on remote DCs
36 const SHUTDOWN_CHRONPROT_SYNC = 2; // save DB positions, waiting on all DCs
37
61 public function __construct( array $conf );
62
68 public function destroy();
69
82 public function newMainLB( $domain = false );
83
90 public function getMainLB( $domain = false );
91
104 public function newExternalLB( $cluster );
105
112 public function getExternalLB( $cluster );
113
120 public function getAllMainLBs();
121
128 public function getAllExternalLBs();
129
138 public function forEachLB( $callback, array $params = [] );
139
146 public function shutdown(
147 $mode = self::SHUTDOWN_CHRONPROT_SYNC, callable $workCallback = null, &$cpIndex = null
148 );
149
155 public function flushReplicaSnapshots( $fname = __METHOD__ );
156
165 public function commitAll( $fname = __METHOD__, array $options = [] );
166
180 public function beginMasterChanges( $fname = __METHOD__ );
181
189 public function commitMasterChanges( $fname = __METHOD__, array $options = [] );
190
195 public function rollbackMasterChanges( $fname = __METHOD__ );
196
202 public function hasTransactionRound();
203
208 public function hasMasterChanges();
209
214 public function laggedReplicaUsed();
215
221 public function hasOrMadeRecentMasterChanges( $age = null );
222
246 public function waitForReplication( array $opts = [] );
247
256 public function setWaitForReplicationListener( $name, callable $callback = null );
257
265
276 public function commitAndWaitForReplication( $fname, $ticket, array $opts = [] );
277
282 public function getChronologyProtectorTouched( $dbName );
283
290
296 public function setDomainPrefix( $prefix );
297
301 public function closeAll();
302
306 public function setAgentName( $agent );
307
317 public function appendShutdownCPIndexAsQuery( $url, $time );
318
326 public function setRequestInfo( array $info );
327
341 public function setTableAliases( array $aliases );
342
356 public function setIndexAliases( array $aliases );
357}
if(defined( 'MW_SETUP_CALLBACK')) $fname
Customization point after all loading (constants, functions, classes, DefaultSettings,...
Definition Setup.php:112
see documentation in includes Linker php for Linker::makeImageLink & $time
Definition hooks.txt:1795
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped & $options
Definition hooks.txt:2001
An interface for generating database load balancers.
beginMasterChanges( $fname=__METHOD__)
Flush any master transaction snapshots and set DBO_TRX (if DBO_DEFAULT is set)
getAllExternalLBs()
Get cached (tracked) load balancers for all external database clusters.
setDomainPrefix( $prefix)
Set a new table prefix for the existing local domain ID for testing.
shutdown( $mode=self::SHUTDOWN_CHRONPROT_SYNC, callable $workCallback=null, &$cpIndex=null)
Prepare all tracked load balancers for shutdown.
commitAll( $fname=__METHOD__, array $options=[])
Commit open transactions on all connections.
setTableAliases(array $aliases)
Make certain table names use their own database, schema, and table prefix when passed into SQL querie...
newMainLB( $domain=false)
Create a new load balancer object.
waitForReplication(array $opts=[])
Waits for the replica DBs to catch up to the current master position.
commitAndWaitForReplication( $fname, $ticket, array $opts=[])
Convenience method for safely running commitMasterChanges()/waitForReplication()
__construct(array $conf)
Construct a manager of ILoadBalancer objects.
destroy()
Disables all load balancers.
laggedReplicaUsed()
Detemine if any lagged replica DB connection was used.
getChronologyProtectorTouched( $dbName)
commitMasterChanges( $fname=__METHOD__, array $options=[])
Commit changes on all master connections.
appendShutdownCPIndexAsQuery( $url, $time)
Append ?cpPosIndex parameter to a URL for ChronologyProtector purposes if needed.
getExternalLB( $cluster)
Get a cached (tracked) load balancer for external storage.
getMainLB( $domain=false)
Get a cached (tracked) load balancer object.
disableChronologyProtection()
Disable the ChronologyProtector for all load balancers.
closeAll()
Close all open database connections on all open load balancers.
hasOrMadeRecentMasterChanges( $age=null)
Determine if any master connection has pending/written changes from this request.
hasTransactionRound()
Check if a transaction round is active.
getAllMainLBs()
Get cached (tracked) load balancers for all main database clusters.
hasMasterChanges()
Determine if any master connection has pending changes.
forEachLB( $callback, array $params=[])
Execute a function for each tracked load balancer The callback is called with the load balancer as th...
setIndexAliases(array $aliases)
Convert certain index names to alternative names before querying the DB.
getEmptyTransactionTicket( $fname)
Get a token asserting that no transaction writes are active.
newExternalLB( $cluster)
Create a new load balancer for external storage.
flushReplicaSnapshots( $fname=__METHOD__)
Commit all replica DB transactions so as to flush any REPEATABLE-READ or SSI snapshot.
setWaitForReplicationListener( $name, callable $callback=null)
Add a callback to be run in every call to waitForReplication() before waiting.
rollbackMasterChanges( $fname=__METHOD__)
Rollback changes on all master connections.
$params