[jboss-jira] [JBoss JIRA] Commented: (JGRP-1331) Digest: remove low seqno
Bela Ban (JIRA)
jira-events at lists.jboss.org
Wed Aug 17 05:37:17 EDT 2011
[ https://issues.jboss.org/browse/JGRP-1331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12621539#comment-12621539 ]
Bela Ban commented on JGRP-1331:
--------------------------------
The same principle can be applied to Digests in memory: when we get a byte buffer
| COMPRESSED_SHORT_BYTE | 100000 | 20000 | -1 |
, we can make Digest simply wrap the byte buffer and the methods such as getHighestReceived() would operate on the byte buffer !
The method knows (by consulting the options flag) that we have 8 bytes (a long) for the low seqno, a short (2 bytes) for the highest_delivered and 1 byte for the higest_delivered. It has to read the first byte (options flag), the long (low) and then the next 2 bytes (short), to construct the offset which is added to low to arrive at the highest_received seqno.
This way, we can save even more memory.
> 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.1
>
>
> 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