1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00
samba-mirror/ctdb
Xavi Hernandez 63b47dc0ed Fix starvation of pending writes in CTDB queues
CTDB uses a queue to receive requests and send answers. It works
asynchronously using the tevent framework. However there was an issue
that gave priority to the receiving side so, when a request was
processed and the answer posted to the queue, if another incoming
request arrived, it was served before sending the previous answer.

This scenario could repeat for long periods of time if the frequency of
incoming requests was high enough.

Eventually, a small time gap between incoming request gave a chance to
process the pending output queue, sending many answers in a burst.

This patch makes sure that both queues (input and output) are processed
if the event contains the appropriate flag.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15678
RN: Fix unnecessary delays in CTDB while processing requests under high
load.

Signed-off-by: Xavi Hernandez <xhernandez@redhat.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>

Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Mon Jul  1 09:17:43 UTC 2024 on atb-devel-224

(cherry picked from commit 60550fbe18)

Autobuild-User(v4-20-test): Jule Anger <janger@samba.org>
Autobuild-Date(v4-20-test): Tue Jul  9 09:43:01 UTC 2024 on atb-devel-224
2024-07-09 09:43:01 +00:00
..
client ctdb: remove unused ctdb_message_disable_ip_check() 2024-01-04 11:39:36 +00:00
cluster ctdb-config: Add configuration option [cluster] leader timeout 2022-01-17 10:21:33 +00:00
common Fix starvation of pending writes in CTDB queues 2024-07-09 09:43:01 +00:00
config ctdb/events: add 47.samba-dcerpcd.script 2024-02-19 14:31:13 +00:00
database ctdb-database: Fix signed/unsigned comparison by casting 2019-07-05 05:03:24 +00:00
doc ctdb/docs: Include ceph rados namespace support in man page 2024-06-18 07:30:11 +00:00
event ctdb-tools: Fix CID 1539212 - signed/unsigned issue 2023-08-07 08:43:39 +00:00
failover ctdb-failover: Add failover configuration options 2018-08-24 10:59:21 +02:00
ib ctdb-daemon: Rename ctdb_context private_data to transport_data 2019-11-14 02:20:46 +00:00
include ctdb: add/implement CTDB_CONTROL_TCP_CLIENT_PASSED 2023-12-15 11:06:34 +00:00
protocol ctdb-protocol: Add missing push support for new controls 2024-02-20 13:46:47 +00:00
server ctdb: send a CTDB_SRVID_IPREALLOCATED message after CTDB_EVENT_IPREALLOCATED 2024-01-04 11:39:36 +00:00
tcp ctdb:tcp: Fix code spelling 2023-03-24 07:01:31 +00:00
tests ctdb-protocol: Add missing push support for new controls 2024-02-20 13:46:47 +00:00
tools ctdb: add comments to "addip"/"delip" when CTDB_{CONTROL,EVENT,SRVID}_IPREALLOCATED happens 2024-01-04 11:39:36 +00:00
utils ctdb/ceph: Add optional namespace support for mutex helper 2024-06-18 07:30:11 +00:00
.bzrignore
.gitignore ctdb-build: use a fixed ctdb_version.h using SAMBA_VERSION_STRING 2019-03-15 05:17:14 +00:00
configure configure/Makefile: export PYTHONHASHSEED=1 in all 'configure/Makefile' scripts 2022-03-29 22:32:32 +00:00
configure.rpm ctdb-packaging: Update library versions to upstream versions 2018-12-18 07:12:09 +01:00
COPYING
Makefile Python: remove pydoctor 2023-02-02 21:15:54 +00:00
README
wscript ctdb-common: Set immediate mode for pcap capture 2023-08-15 10:53:52 +00:00

This is the release version of CTDB, a clustered implementation of TDB
database used by Samba and other projects to store temporary data.

This software is freely distributable under the GNU public license,
a copy of which you should have received with this software (in a file
called COPYING).

For documentation on CTDB, please visit CTDB website http://ctdb.samba.org.