[
https://issues.jboss.org/browse/JGRP-1317?page=com.atlassian.jira.plugin....
]
Bela Ban commented on JGRP-1317:
--------------------------------
Another alternative is to revert Digest to containing a membership list (Address[]) and
the corresponding seqnos (long[]). This is essentially what we had in the beginning.
However, *if View's membership list was changed from an ArrayList<Address> to an
array (Address[])*, then we could do the following when unmarshalling a ref digest:
* Read the View
* Read the seqno[] array of the digest
* Point the Address[] array of digest to the Address[] array of view, so we have the
Address[] aray in memory *only once*
Protocols which need a view-id could simply ship the view-id, e.g. STABLE.
Compress Digest and MutableDigest
---------------------------------
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