objdb_get_int (objdb,object_totem_handle, "token_retransmits_before_loss_const", &totem_config->token_retransmits_before_loss_const);
objdb_get_int (objdb,object_totem_handle, "join", &totem_config->join_timeout);
+ objdb_get_int (objdb,object_totem_handle, "send_join", &totem_config->send_join_timeout);
objdb_get_int (objdb,object_totem_handle, "consensus", &totem_config->consensus_timeout);
"token hold (%d ms) retransmits before loss (%d retrans)\n",
totem_config->token_hold_timeout, totem_config->token_retransmits_before_loss_const);
log_printf (instance->totemsrp_log_level_notice,
- "join (%d ms) consensus (%d ms) merge (%d ms)\n",
- totem_config->join_timeout, totem_config->consensus_timeout,
+ "join (%d ms) send_join (%d ms) consensus (%d ms) merge (%d ms)\n",
+ totem_config->join_timeout,
+ totem_config->send_join_timeout,
+ totem_config->consensus_timeout,
+
totem_config->merge_timeout);
log_printf (instance->totemsrp_log_level_notice,
"downcheck (%d ms) fail to recv const (%d msgs)\n",
memb_join.header.nodeid = instance->my_id.addr[0].nodeid;
assert (memb_join.header.nodeid);
+
assert (srp_addr_equal (&instance->my_proc_list[0], &instance->my_proc_list[1]) == 0);
memb_join.ring_seq = instance->my_ring_id.seq;
memb_join.proc_list_entries = instance->my_proc_list_entries;
iovec[2].iov_len = instance->my_failed_list_entries *
sizeof (struct srp_addr);
+ if (instance->totem_config->send_join_timeout) {
+ usleep (random() % (instance->totem_config->send_join_timeout * 1000));
+ }
+
totemrrp_mcast_flush_send (
instance->totemrrp_handle,
iovec,
The default is 100 milliseconds.
+.TP
+send_join
+This timeout specifies in milliseconds an upper range between 0 and send_join
+to wait before sending a join message. For configurations with less then
+32 nodes, this parameter is not necessary. For larger rings, this parameter
+is necessary to ensure the NIC is not overflowed with join messages on
+formation of a new ring. A reasonable value for large rings (128 nodes) would
+be 80msec. Other timer values must also change if this value is changed. Seek
+advice from the openais mailing list if trying to run larger configurations.
+
+The default is 0 milliseconds.
+
.TP
consensus
This timeout specifies in milliseconds how long to wait for consensus to be