function db_ignore_replica in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/includes/database.inc \db_ignore_replica()
 
Sets a session variable specifying the lag time for ignoring a replica server (A replica server is traditionally referred to as a "slave" in database server documentation).
See also
https://www.drupal.org/node/2275877
4 calls to db_ignore_replica()
- IgnoreReplicaSubscriberTest::testSystemInitIgnoresSecondaries in core/
modules/ system/ src/ Tests/ System/ IgnoreReplicaSubscriberTest.php  - Tests \Drupal\Core\EventSubscriber\ReplicaDatabaseIgnoreSubscriber::checkReplicaServer().
 - MenuRouterRebuildSubscriber::menuLinksRebuild in core/
lib/ Drupal/ Core/ EventSubscriber/ MenuRouterRebuildSubscriber.php  - Perform menu-specific rebuilding.
 - SqlContentEntityStorage::delete in core/
lib/ Drupal/ Core/ Entity/ Sql/ SqlContentEntityStorage.php  - Deletes permanently saved entities.
 - SqlContentEntityStorage::save in core/
lib/ Drupal/ Core/ Entity/ Sql/ SqlContentEntityStorage.php  - Saves the entity permanently.
 
File
- core/
includes/ database.inc, line 1029  - Core systems for the database layer.
 
Code
function db_ignore_replica() {
  $connection_info = Database::getConnectionInfo();
  // Only set ignore_replica_server if there are replica servers being used,
  // which is assumed if there are more than one.
  if (count($connection_info) > 1) {
    // Five minutes is long enough to allow the replica to break and resume
    // interrupted replication without causing problems on the Drupal site from
    // the old data.
    $duration = Settings::get('maximum_replication_lag', 300);
    // Set session variable with amount of time to delay before using replica.
    $_SESSION['ignore_replica_server'] = REQUEST_TIME + $duration;
  }
}