[
https://issues.jboss.org/browse/JGRP-1317?page=com.atlassian.jira.plugin....
]
Bela Ban commented on JGRP-1317:
--------------------------------
Solved as suggested:
* Only the ViewId and the digest seqno pairs are sent
* The seqnos are sent in order of members ranks in the view, e.g. if we have
A|5=\{A,B,C\}, then we'd send
{noformat}
A|5 20:20 15:20 0:0
{noformat}
A|5 is the ViewId, 20:20 the digest for A, 15:20 for B and 0:0 for C.
* When receiving the digest, if the ViewId shipped with the digest and the current ViewId
don't match, the STABLE or STABILITY message is discarded
* If the view IDs match, a digest is created whose members point to the members of the
*current view*. The advantage here is that the elements of Digest.members are only
references to existing addresses in the view, so memory is saved
STABLE: compress STABLE messages
--------------------------------
Key: JGRP-1317
URL:
https://issues.jboss.org/browse/JGRP-1317
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 3.4
For large clusters, STABLE messages are quite large, and should be compressed to be sent
over the wire.
STABLE messages are sent between members in the same view, so we could only send the
ViewId + highest_delivered/highest_received seqnos.
Everybody who receives a STABLE message grabs the View associated with the ViewId (should
be the current view !) and creates a Digest based on the View and the long[] array.
Further optimization:
- Canonicalize digests: if everyone has (14) 20, 22, then we could write it once, give it
an ID of (say) 1 and then only refer to 1 again if we encounter the same digest. Actually,
as a matter of fact, most of the digests would be the same, so this optimization could
have a big effect !
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira