MediaWiki REL1_30
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
60 public function __construct( array $conf );
61
67 public function destroy();
68
81 public function newMainLB( $domain = false );
82
89 public function getMainLB( $domain = false );
90
103 public function newExternalLB( $cluster );
104
111 public function getExternalLB( $cluster );
112
119 public function getAllMainLBs();
120
127 public function getAllExternalLBs();
128
137 public function forEachLB( $callback, array $params = [] );
138
144 public function shutdown(
145 $mode = self::SHUTDOWN_CHRONPROT_SYNC, callable $workCallback = null
146 );
147
153 public function flushReplicaSnapshots( $fname = __METHOD__ );
154
163 public function commitAll( $fname = __METHOD__, array $options = [] );
164
178 public function beginMasterChanges( $fname = __METHOD__ );
179
187 public function commitMasterChanges( $fname = __METHOD__, array $options = [] );
188
193 public function rollbackMasterChanges( $fname = __METHOD__ );
194
200 public function hasTransactionRound();
201
206 public function hasMasterChanges();
207
212 public function laggedReplicaUsed();
213
219 public function hasOrMadeRecentMasterChanges( $age = null );
220
244 public function waitForReplication( array $opts = [] );
245
254 public function setWaitForReplicationListener( $name, callable $callback = null );
255
263
274 public function commitAndWaitForReplication( $fname, $ticket, array $opts = [] );
275
280 public function getChronologyProtectorTouched( $dbName );
281
288
294 public function setDomainPrefix( $prefix );
295
299 public function closeAll();
300
304 public function setAgentName( $agent );
305
315 public function appendPreShutdownTimeAsQuery( $url, $time );
316
323 public function setRequestInfo( array $info );
324}
if(!defined( 'MEDIAWIKI')) $fname
This file is not a valid entry point, perform no further processing unless MEDIAWIKI is defined.
Definition Setup.php:36
see documentation in includes Linker php for Linker::makeImageLink & $time
Definition hooks.txt:1778
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:1971
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.
appendPreShutdownTimeAsQuery( $url, $time)
Append ?cpPosTime parameter to a URL for ChronologyProtector purposes if needed.
commitAll( $fname=__METHOD__, array $options=[])
Commit open transactions on all connections.
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.
shutdown( $mode=self::SHUTDOWN_CHRONPROT_SYNC, callable $workCallback=null)
Prepare all tracked load balancers for shutdown.
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...
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