[
https://issues.redhat.com/browse/JGRP-2451?page=com.atlassian.jira.plugin...
]
Bela Ban updated JGRP-2451:
---------------------------
Description:
Improvements to {{FD_ALL}}.
* Messages should count as heartbeats ({{msg_counts_as_heartbeat}} should be *default*,
and as such, deprecated/removed).
* When a multicast message is sent before {{interval}} elapsed, we suppress sending a
heartbeat
It is crucial that setting the in the map is quick, especially since this is done on
every message. This should not be an issue, as we fetch the current time from the time
service, which does *not* call {{System.nanoTime()}} or {{System.currentTimeMillis()}}
every time.
The advantage is that we only send heartbeats when there is no (multicast) traffic, and
we don't suspect a member P when heartbeats have been missing despite receiving
traffic from P.
We need to think about whether to consider unicast messages, too, on the sender side: we
could populate a bit map with messages sent to members: on a unicast message to P, P's
bit would be set in the bit. On a multicast message, all bits would be set. Then, we could
selectively send heartbeats only to members with bits set to 0.
However, this is only feasible with sending a message N-1 times (e.g. TCP); for UDP we
don't have such an 'anycast' available.
was:
Improvements to {{FD_ALL2}}.
* Messages should count as heartbeats ({{msg_counts_as_heartbeat}} should be *default*,
and as such, deprecated).
* When a multicast message is sent before {{interval}} elapsed, we suppress sending a
heartbeat
* There's a map associating members with booleans. True means a heartbeat was received
since the last check, false means it wasn't. On a check, the booleans are all set to
false.
It is crucial that setting the in the map is quick (not like in {{FD_ALL}}, where we
fetch the current time from the time service), especially since this is done on every
message.
The advantage is that we only send heartbeats when there is no (multicast) traffic, and
we don't suspect a member P when heartbeats have been missing despite receiving
traffic from P.
We need to think about whether to consider unicast messages, too, on the sender side: we
could populate a bit map with messages sent to members: on a unicast message to P, P's
bit would be set in the bit. On a multicast message, all bits would be set. Then, we could
selectively send heartbeats only to members with bits set to 0.
However, this is only feasible with sending a message N-1 times (e.g. TCP); for UDP we
don't have such an 'anycast' available.
FD_ALL3: improvements over FD_ALL
---------------------------------
Key: JGRP-2451
URL:
https://issues.redhat.com/browse/JGRP-2451
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assignee: Bela Ban
Priority: Major
Fix For: 5.0, 4.2.1
Improvements to {{FD_ALL}}.
* Messages should count as heartbeats ({{msg_counts_as_heartbeat}} should be *default*,
and as such, deprecated/removed).
* When a multicast message is sent before {{interval}} elapsed, we suppress sending a
heartbeat
It is crucial that setting the in the map is quick, especially since this is done on
every message. This should not be an issue, as we fetch the current time from the time
service, which does *not* call {{System.nanoTime()}} or {{System.currentTimeMillis()}}
every time.
The advantage is that we only send heartbeats when there is no (multicast) traffic, and
we don't suspect a member P when heartbeats have been missing despite receiving
traffic from P.
We need to think about whether to consider unicast messages, too, on the sender side: we
could populate a bit map with messages sent to members: on a unicast message to P, P's
bit would be set in the bit. On a multicast message, all bits would be set. Then, we could
selectively send heartbeats only to members with bits set to 0.
However, this is only feasible with sending a message N-1 times (e.g. TCP); for UDP we
don't have such an 'anycast' available.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)