[jboss-jira] [JBoss JIRA] Commented: (JGRP-1331) Digest: remove low seqno

Bela Ban (JIRA) jira-events at lists.jboss.org
Tue Aug 23 07:17:17 EDT 2011


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

Bela Ban commented on JGRP-1331:
--------------------------------

Instead of the class Digest.Entry, we could have a byte[] array and methods which access it through Digest. (This would all be hidden by Digest).
The byte[] buffer could consist of
- flag byte (first byte): 
  - the first 4 bits define how many bytes we use for the highest_delivered
  - the last 4 bits define how many bytes we use for highest_received
- highest_delivered (1 - 8 bytes)
- highest_received (1 - 8 bytes). This is expressed as a (positive) delta to highest_delivered

To encode a short we only need 2 bytes. For numbers up to 2^24, we only need 3 bytes and so on.

Example: to encode highest_deliverd=25000, highest_received=25010, we'd use
| 0100 - 1000 | 25000 | 10 |

- The first 2 bits are 2 = 2 bytes (a short) to represent 25'000
- The second half is 1, which means the second number needs only 1 byte (10), and that's the offset to 25000
- So to represent 25000{25010}, we need 4 bytes !



> Digest: remove low seqno
> ------------------------
>
>                 Key: JGRP-1331
>                 URL: https://issues.jboss.org/browse/JGRP-1331
>             Project: JGroups
>          Issue Type: Task
>            Reporter: Bela Ban
>            Assignee: Bela Ban
>            Priority: Minor
>             Fix For: 3.0
>
>
> We don't need Digest.Entry.low_seqno for NakReceiverWindow anymore. We only need it for the Retransmitter implementations. If we can remove that last dependency, e.g. by storing the last seqno removed from a retransmitter, we can remove low_seqno from a digest. This is significant, for example if we have 100 nodes, a digest includes 300 longs:(low+highest_received+highest_delivered) * 100. If we remove low_seqno, we only have 200 longs. (These will still be further compressed in a different JIRA).
> This is important for large clusters, to reduce the size of STABLE messages and views.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list