Compress MergeViews
-------------------
Key: JGRP-1391
URL:
https://issues.jboss.org/browse/JGRP-1391
Project: JGroups
Issue Type: Enhancement
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 3.1
The 'subgroups' field of MergeView is a list of Views, referring to the
subclusters that formed the new view.
Each View in that list contains (1) the creator of the view, (2) an ID and (3) a list of
member addresses. Both (1) and (3) are present in the new MergeView, so, to save memory
and message sizes, 'subgroups' could be compressed: (1) and (3) could be indices
into View's 'members' field.
Example: if we have MergeView A|22={A,B,C,D,E,X,Y,Z}, subgroups=A|21={A,B,C}, D|19={D,E},
X|20={X,Y,Z},
then 'subgroups' can be compressed as follows:
subgroups=0|21={0,1,2}, 3|19={3,4}, 5|20={5,6,7}
This is possible because the indices never change, as the contents of Views and MergeViews
are static, e.g. we can never add or remove a member: to do this, a new View/MergeView
would be created.
Substituting addresses with indices (shorts, possibly using variable-bit encoding) reduces
the memory footprint of a view, and the size of a serialized view on the wire.
Getting the subgroups field, e.g. using method getSubgroups() would synthesize the
List<View> just-in-time.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira