On Tue, Apr 24, 2012 at 11:46:34PM +0300, Julian Anastasov wrote:
> The following patchset contains changes for the
> master-backup synchronization mechanism.
Thanks.
I have pushed these to ipvs-next. But I am awaiting Pablo's review
before sending him a pull request.
> Patches 1-4 fix some flags and transmitter issues for the backup
>
> Patch 5 (wakeup master thread) replaces the fixed
> pause of 1 HZ in master thread with logic that generates
> wakeups events, useful for setups that use v0 of the sync
> protocol or when persistence is used for v1 because the
> next patch changes the sync rate for persistence
> connections back to original method (sync templates
> every time when syncing controlled connections).
>
> Patch 6 (reduce sync rate with time thresholds) addresses the
> problem of high sync rate for loaded sites. With commit
> 986a075795339c5ea1122ce9290dfd5504252eb0
> (Backup, Change sending to Version 1 format) we tried to
> reduce the sync rate for templates in protocol v1 but using
> sync_threshold for templates is too arbitrary and leads
> to inaccurate information in backup when the template life
> time is extended. This change restores the high rate of
> templates for the default case (using sync_threshold parameters)
> but adds new controls that can reduce the sync rate for all
> kind of connections: sync_refresh_period and sync_retries.
> Tests with sync_refresh_period=1000 can show 10 times lower
> sync traffic compared to sync_threshold=3 100.
>
> Patch 7 (add support for sync threads) addresses the problem
> that single thread in backup server is not suitable for high sync
> rate. For setups that use many masters and single backup or
> when the backup is used as master or real server at the same time
> we can prefer to serve the sync traffic on many CPUs. This patch
> adds sysctl var "sync_ports" and starts the specified number of
> threads (one thread per port). This value is used for master
> threads too.
>
> Patch 8 (optimize the use of flags in ip_vs_bind_dest) is just
> an optimization for the cp->flags usage.
>
> v4:
> - fix patch 5 to compile on recent tree
>
> v3:
> - fix patch 7 to compile on 64-bit
>
> v2:
> - replaced patch 5 (use adaptive pause in master thread) with
> (wakeup master thread)
> - rediff patch 6 (reduce sync rate with time thresholds)
> - update patch 7 (add support for sync threads)
>
> Julian Anastasov (8):
> ipvs: ignore IP_VS_CONN_F_NOOUTPUT in backup server
> ipvs: remove check for IP_VS_CONN_F_SYNC from ip_vs_bind_dest
> ipvs: fix ip_vs_try_bind_dest to rebind app and transmitter
> ipvs: always update some of the flags bits in backup
> ipvs: wakeup master thread
> ipvs: reduce sync rate with time thresholds
> ipvs: add support for sync threads
> ipvs: optimize the use of flags in ip_vs_bind_dest
>
> include/linux/ip_vs.h | 5 +
> include/net/ip_vs.h | 87 +++++-
> net/netfilter/ipvs/ip_vs_conn.c | 69 +++-
> net/netfilter/ipvs/ip_vs_core.c | 30 +--
> net/netfilter/ipvs/ip_vs_ctl.c | 70 ++++-
> net/netfilter/ipvs/ip_vs_sync.c | 662
> +++++++++++++++++++++++++++------------
> 6 files changed, 658 insertions(+), 265 deletions(-)
>
> --
> 1.7.3.4
>
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
|