File pacemaker-crmd-attribute-write-out-not-needed-with-atomic-attrd.patch of Package pacemaker.14737
commit fe44f400a3116a158ab331a92a49a4ad8937170d
Author: Ken Gaillot <kgaillot@redhat.com>
Date: Wed May 24 15:32:02 2017 -0500
Fix: crmd: attribute write-out not needed with atomic attrd
This is a scalability issue, as the write-out results in CIB notifications
for each attribute/node combination, which can overwhelm the crmd and
get it evicted from the cib as a slow IPC client.
diff --git a/crmd/join_client.c b/crmd/join_client.c
index 45104831b..baa7be00b 100644
--- a/crmd/join_client.c
+++ b/crmd/join_client.c
@@ -313,7 +313,13 @@ do_cl_join_finalize_respond(long long action,
if (AM_I_DC == FALSE) {
register_fsa_input_adv(cause, I_NOT_DC, NULL, A_NOTHING, TRUE, __FUNCTION__);
+#if !HAVE_ATOMIC_ATTRD
+ /* Ask attrd to write all attributes to disk. This is not needed for
+ * atomic attrd because atomic attrd does a peer sync and write-out
+ * when winning an election.
+ */
update_attrd(NULL, NULL, NULL, NULL, FALSE);
+#endif
}
free_xml(tmp1);
diff --git a/crmd/join_dc.c b/crmd/join_dc.c
index ebb5059b6..242377b54 100644
--- a/crmd/join_dc.c
+++ b/crmd/join_dc.c
@@ -686,7 +686,13 @@ do_dc_join_final(long long action,
enum crmd_fsa_input current_input, fsa_data_t * msg_data)
{
crm_debug("Ensuring DC, quorum and node attributes are up-to-date");
+#if !HAVE_ATOMIC_ATTRD
+ /* Ask attrd to write all attributes to disk. This is not needed for
+ * atomic attrd because atomic attrd does a peer sync and write-out
+ * when winning an election.
+ */
update_attrd(NULL, NULL, NULL, NULL, FALSE);
+#endif
crm_update_quorum(crm_have_quorum, TRUE);
}