1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-28 07:21:54 +03:00
samba-mirror/ctdb/common
Amitay Isaacs a61a4b1254 common/io: Limit the queue buffer size for fair scheduling via tevent
If we process all the data available in a socket buffer, CTDB can stay busy
processing lots of packets via immediate event mechanism in tevent.  After
processing an immediate event, tevent returns without epoll_wait.  So as long
as there are immediate events, tevent will never poll other FDs.  CTDB will
report this as "Event handling took xx seconds" warning.  This is misleading
since CTDB is very busy processing packets, but never gets to the point of
polling FDs.

The improvement in socket handling made it worse when handling traverse
control.  There were lots of packets filled in the socket buffer quickly and
CTDB stayed busy processing those packets and not polling other FDs and timer
events.  This can lead to controls timing out and in worse case other nodes
marking busy node as disconnected.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit 92939c1178d04116d842708bc2d6a9c2950e36cc)
2013-08-22 14:08:52 +10:00
..
cmdline.c Remove explicit include of lib/tevent/tevent.h. 2012-04-13 17:28:14 +10:00
ctdb_fork.c util: ctdb_fork() should call ctdb_set_child_info() 2013-04-18 13:18:29 +10:00
ctdb_io.c common/io: Limit the queue buffer size for fair scheduling via tevent 2013-08-22 14:08:52 +10:00
ctdb_logging.c Fixes for various issues found by Coverity 2013-07-11 15:16:55 +10:00
ctdb_ltdb.c Revert "LACOUNT: Add back lacount mechanism to defer migrating a fetched/read copy until after default of 20 consecutive requests from the same node" 2013-08-22 14:08:52 +10:00
ctdb_message.c build: Fix tdb.h path to enable building with system TDB library 2013-06-14 16:45:27 +10:00
ctdb_util.c util: In passing the code, fix a space vs. tab in set_close_on_exec(). 2013-08-19 17:12:33 +02:00
rb_tree.c server: Replace BOOL datatype with bool, True/False with true/false 2012-05-28 11:22:25 +10:00
rb_tree.h Added some #ifndefs to stop files being included multiple times. 2011-11-11 14:31:50 +11:00
system_aix.c common/system: Add ctdb_set_process_name() function 2013-07-10 14:33:19 +10:00
system_common.c build: Fix compiler warnings for uninitialized variables 2013-07-04 20:43:52 +10:00
system_freebsd.c common/system: Add ctdb_set_process_name() function 2013-07-10 14:33:19 +10:00
system_gnu.c common/system: Add ctdb_set_process_name() function 2013-07-10 14:33:19 +10:00
system_kfreebsd.c common/system: Add ctdb_set_process_name() function 2013-07-10 14:33:19 +10:00
system_linux.c common: Null terminate process name string so valgrind doesn't complain 2013-08-14 16:55:51 +10:00