[jboss-jira] [JBoss JIRA] (JGRP-1317) Compress Digest and MutableDigest

Bela Ban (JIRA) jira-events at lists.jboss.org
Thu Sep 12 04:10:05 EDT 2013


    [ https://issues.jboss.org/browse/JGRP-1317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12803731#comment-12803731 ] 

Bela Ban commented on JGRP-1317:
--------------------------------

Here's a summary of the changes:
- In some cases, when a digest and a view are the same, the members
  field of the digest points to the members field of the view,
  resulting in reduced memory use.
- When a view and digest are the same, we marshal the members only
  once (in JOIN-RSP, MERGE-RSP and INSTALL-MERGE-VIEW).
- We don't send the digest with a VIEW to *existing members*; the full
  view and digest is only sent to the joiner. This means that new
  views are smaller, which is useful in large clusters.
- JIRA:  https://issues.jboss.org/browse/JGRP-1317
- View and MergeView now use arrays rather than lists to store
  membership and subgroups
- Make sure digest matches view when returning JOIN-RSP or installing
  MergeView (https://issues.jboss.org/browse/JGRP-1690)
- More efficient marshalling of GMS$GmsHeader: when view and digest
  are present, we only marshal the members once
- JoinRsp: marshalling members in view and digest only once
- Digest: marshalling members in view and digest only once
                
> 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


More information about the jboss-jira mailing list