/** @var int Alias for CONN_TRX_AUTOCOMMIT for b/c; deprecated since 1.31 */
const CONN_TRX_AUTO = 1;
+ /** @var string Manager of ILoadBalancer instances is running post-commit callbacks */
+ const STAGE_POSTCOMMIT_CALLBACKS = 'stage-postcommit-callbacks';
+ /** @var string Manager of ILoadBalancer instances is running post-rollback callbacks */
+ const STAGE_POSTROLLBACK_CALLBACKS = 'stage-postrollback-callbacks';
+
/**
* Construct a manager of IDatabase connection objects
*
* - perfLogger: PSR-3 logger instance. [optional]
* - errorLogger : Callback that takes an Exception and logs it. [optional]
* - deprecationLogger: Callback to log a deprecation warning. [optional]
+ * - roundStage: STAGE_POSTCOMMIT_* class constant; for internal use [optional]
* @throws InvalidArgumentException
*/
public function __construct( array $params );
* Run pre-commit callbacks and defer execution of post-commit callbacks
*
* Use this only for mutli-database commits
+ *
+ * @return int Number of pre-commit callbacks run (since 1.32)
*/
public function finalizeMasterChanges();
public function rollbackMasterChanges( $fname = __METHOD__ );
/**
- * Commit all replica DB transactions so as to flush any REPEATABLE-READ or SSI snapshot
+ * Commit all replica DB transactions so as to flush any REPEATABLE-READ or SSI snapshots
*
* @param string $fname Caller name
*/
public function flushReplicaSnapshots( $fname = __METHOD__ );
+ /**
+ * Commit all master 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
+ *
+ * @param string $fname Caller name
+ */
+ public function flushMasterSnapshots( $fname = __METHOD__ );
+
/**
* @return bool Whether a master connection is already open
*/
public function hasMasterConnection();
/**
- * Determine if there are pending changes in a transaction by this thread
+ * Whether there are pending changes or callbacks in a transaction by this thread
* @return bool
*/
public function hasMasterChanges();