Limit active DB connections spawned in waitForAll() to one
* If new connections are created, they will be closed before making the next ones now. Change-Id: I289d81ec00d3e1e313624e2a4c28a67bfb317feb
This commit is contained in:
parent
103ff32fbc
commit
cbdb81d1bc
1 changed files with 14 additions and 5 deletions
|
|
@ -394,7 +394,9 @@ class LoadBalancer {
|
|||
* @return bool
|
||||
*/
|
||||
protected function doWait( $index, $open = false, $timeout = null ) {
|
||||
# Find a connection to wait on
|
||||
$close = false; // close the connection afterwards
|
||||
|
||||
# Find a connection to wait on, creating one if needed and allowed
|
||||
$conn = $this->getAnyOpenConnection( $index );
|
||||
if ( !$conn ) {
|
||||
if ( !$open ) {
|
||||
|
|
@ -408,6 +410,9 @@ class LoadBalancer {
|
|||
|
||||
return false;
|
||||
}
|
||||
// Avoid connection spam in waitForAll() when connections
|
||||
// are made just for the sake of doing this lag check.
|
||||
$close = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -418,13 +423,17 @@ class LoadBalancer {
|
|||
if ( $result == -1 || is_null( $result ) ) {
|
||||
# Timed out waiting for slave, use master instead
|
||||
wfDebug( __METHOD__ . ": Timed out waiting for slave #$index pos {$this->mWaitForPos}\n" );
|
||||
|
||||
return false;
|
||||
$ok = false;
|
||||
} else {
|
||||
wfDebug( __METHOD__ . ": Done\n" );
|
||||
|
||||
return true;
|
||||
$ok = true;
|
||||
}
|
||||
|
||||
if ( $close ) {
|
||||
$this->closeConnection( $conn );
|
||||
}
|
||||
|
||||
return $ok;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue