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