summaryrefslogtreecommitdiff
path: root/ctdb/packaging
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2015-06-29 14:56:53 +1000
committerAmitay Isaacs <amitay@samba.org>2015-10-07 14:53:29 +0200
commit951431910dc6d00815c19e087bc2546b1daa591b (patch)
treed844d3a3893dbf201f7d4177266f3b267452af9c /ctdb/packaging
parentb04c48d2f5f0a5e64ccf75e7773b880c521ffef3 (diff)
downloadsamba-951431910dc6d00815c19e087bc2546b1daa591b.tar.gz
ctdb-recoverd: Add parallel database recovery helper
Parallel database recovery fixes the samba/ctdb deadlock during recovery. Many times samba tries to grab multiple record locks in sequence. Consider a case when samba is already holding a record lock on a database and tries to get a record lock on second database. If the second record is not available on the local node, samba asks ctdb to migrate the record. If recovery occurs at this time (e.g. node becoming inactive), ctdb cannot freeze all the databases since samba is already holding a lock and waiting for the second lock. CTDB can process the second record request only after the recovery is complete, thus causing a deadlock. In parallel database recovery, each database is frozen and recovered independent from each other. So as soon as the second database is recovered, CTDB will resend all the pending migration requests and Samba can get the second lock. Once samba releases both the locks, ctdb can freeze the first database and recover it completing recovery process. Signed-off-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Martin Schwenke <martin@meltin.net>
Diffstat (limited to 'ctdb/packaging')
-rw-r--r--ctdb/packaging/RPM/ctdb.spec.in1
1 files changed, 1 insertions, 0 deletions
diff --git a/ctdb/packaging/RPM/ctdb.spec.in b/ctdb/packaging/RPM/ctdb.spec.in
index 5db2e3af65a..00e7f17c232 100644
--- a/ctdb/packaging/RPM/ctdb.spec.in
+++ b/ctdb/packaging/RPM/ctdb.spec.in
@@ -197,6 +197,7 @@ rm -rf $RPM_BUILD_ROOT
%{_bindir}/ctdb
%{_bindir}/ctdb_lock_helper
%{_bindir}/ctdb_event_helper
+%{_bindir}/ctdb_recovery_helper
%{_bindir}/smnotify
%{_bindir}/ping_pong
%{_bindir}/ltdbtool