From c730f0b3374bb2708f79e65dcab89febbf76476c Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Tue, 8 Sep 2015 11:29:25 +1000 Subject: [PATCH] ctdb-scripts: Optimise tickle_tcp_connections() Pipe the connections to "ctdb tickle" on stdin to avoid having to fork so many "ctdb tickle" processes. This maintains the current level of verbosity at the price of some extra memory usage. Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs Autobuild-User(master): Amitay Isaacs Autobuild-Date(master): Thu Sep 8 10:45:42 CEST 2016 on sn-devel-144 --- ctdb/config/functions | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/ctdb/config/functions b/ctdb/config/functions index d5443f5767a..ac9aa917ae1 100755 --- a/ctdb/config/functions +++ b/ctdb/config/functions @@ -520,21 +520,12 @@ tickle_tcp_connections () { _ip="$1" - get_tcp_connections_for_ip "$_ip" | - { - _failed=false - - while read dest src; do - echo "Tickle TCP connection $src $dest" - $CTDB tickle "$src" "$dest" >/dev/null 2>&1 || _failed=true - echo "Tickle TCP connection $dest $src" - $CTDB tickle "$dest" "$src" >/dev/null 2>&1 || _failed=true - done + # Get connections, both directions + _conns=$(get_tcp_connections_for_ip "$_ip" | \ + awk '{ print $1, $2 ; print $2, $1 }') - if $_failed ; then - echo "Failed to send tickle control" - fi - } + echo "$_conns" | awk '{ print "Tickle TCP connection", $1, $2 }' + echo "$_conns" | ctdb tickle } get_tcp_connections_for_ip () -- 2.34.1