mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
415f9f0745
rpc.statd is single-threaded and runs its HA callout synchronously. If it is too slow then latency accumulates and rpc.statd's backlog grows. Running a pair of add-client/del-client events with the current code averages ~0.030s in my test environment. This mean that 1000 clients reclaiming locks after failover can easily cause 10s of latency. This could cause rpc.statd to become unresponsive, resulting in a time out for an rpcinfo-based health check of the status service. Split the add-client/del-client events out to a standalone statd_callout executable, written in C, to be used as the HA callout for rpc.statd. All other functions move to statd_callout_helper. Now, running a pair of add-client/del-client events in my test environment averages only ~0.002s. This seems less likely to cause latency problems. The standalone statd_callout executable needs to read a configuration file, which is generated by statd_callout_helper from the "startup" event. It also needs access to a list of currently assigned public IPs. For backward compatibility, during installation a symlink is created from $CTDB_BASE/statd-callout to the new statd_callout, which is installed in the helper directory. Testing this as part of the eventscript unit tests starts to become even more of a hack than it used to be. However, the dependency on stubs and the corresponding setup of fake state makes it hard to move this elsewhere. Signed-off-by: Martin Schwenke <mschwenke@ddn.com> Reviewed-by: Amitay Isaacs <amitay@gmail.com> Autobuild-User(master): Martin Schwenke <martins@samba.org> Autobuild-Date(master): Tue Jun 25 04:24:57 UTC 2024 on atb-devel-224
27 lines
719 B
Plaintext
27 lines
719 B
Plaintext
This directory contains run-time support scripts for CTDB.
|
|
|
|
Selected highlights:
|
|
|
|
ctdb.init
|
|
|
|
An initscript for starting ctdbd at boot time.
|
|
|
|
events/
|
|
|
|
Eventscripts. See events/README for more details.
|
|
|
|
functions
|
|
|
|
Support functions, sourced by eventscripts and other scripts.
|
|
|
|
Notes:
|
|
|
|
* All of these scripts are written in POSIX Bourne shell. Please
|
|
avoid bash-isms, including the use of "local" variables (which are
|
|
not available in POSIX shell).
|
|
|
|
* Do not use absolute paths for commands. Unit tests attempt to
|
|
replace many commands with stubs and can not do this if commands are
|
|
specified with absolute paths. The functions file controls $PATH so
|
|
absolute paths should not be required.
|