From 2217c0a4bea906436b28d85b968894631752f458 Mon Sep 17 00:00:00 2001 From: Nigel Williams Date: Mon, 17 Feb 2020 09:30:15 +1100 Subject: [PATCH] Push more outgoing syncs in parallel --- ykval-synclib.php | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/ykval-synclib.php b/ykval-synclib.php index 2963ccb..e5a9d8d 100644 --- a/ykval-synclib.php +++ b/ykval-synclib.php @@ -305,21 +305,26 @@ class SyncLib } $this->db->closeCursor($server_res); - /* add one entry for each server we're going to sync */ + $num_per_server = 4; + /* add up to n entries for each server we're going to sync */ foreach ($server_list as $server) { - $entry = array_shift($server); + $items = array_slice($server, 0, $num_per_server); + foreach ($items as $entry) { + $handle = $ch[$entry['server']]; + $this->log(LOG_INFO, "server=" . $entry['server'] . ", server_nonce=" . $entry['server_nonce'] . ", info=" . $entry['info']); + + $url = $this->buildSyncUrl($entry); + + curl_settings($this, 'YK-VAL resync', $handle, $url, $timeout, $this->curlopts); + $entries[$entry['server']] = $entry; + curl_multi_add_handle($mh, $handle); + $handles++; + } + $empty = array(); + array_splice($server, 0, $num_per_server, $empty); if(count($server) == 0) { unset($server_list[$entry['server']]); } - $handle = $ch[$entry['server']]; - $this->log(LOG_INFO, "server=" . $entry['server'] . ", server_nonce=" . $entry['server_nonce'] . ", info=" . $entry['info']); - - $url = $this->buildSyncUrl($entry); - - curl_settings($this, 'YK-VAL resync', $handle, $url, $timeout, $this->curlopts); - $entries[$entry['server']] = $entry; - curl_multi_add_handle($mh, $handle); - $handles++; } while($handles > 0) {