From 36d54d95e3606be4222558d1d29e60637036bece Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Mon, 12 Sep 2016 16:46:02 -0700 Subject: [PATCH] Make LBFactory::waitForReplication() mask wait latency with callbacks This simply moves the call order down a bit. Change-Id: I78559f769133d5addb590a65af7d535604de8407 --- includes/db/loadbalancer/LBFactory.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/includes/db/loadbalancer/LBFactory.php b/includes/db/loadbalancer/LBFactory.php index cd8dff32a1..4758cc77a1 100644 --- a/includes/db/loadbalancer/LBFactory.php +++ b/includes/db/loadbalancer/LBFactory.php @@ -430,10 +430,6 @@ abstract class LBFactory implements DestructibleService { 'ifWritesSince' => null ]; - foreach ( $this->replicationWaitCallbacks as $callback ) { - $callback(); - } - // Figure out which clusters need to be checked /** @var LoadBalancer[] $lbs */ $lbs = []; @@ -467,6 +463,12 @@ abstract class LBFactory implements DestructibleService { $masterPositions[$i] = $lb->getMasterPos(); } + // Run any listener callbacks *after* getting the DB positions. The more + // time spent in the callbacks, the less time is spent in waitForAll(). + foreach ( $this->replicationWaitCallbacks as $callback ) { + $callback(); + } + $failed = []; foreach ( $lbs as $i => $lb ) { if ( $masterPositions[$i] ) { -- 2.20.1