[
https://issues.jboss.org/browse/JGRP-1331?page=com.atlassian.jira.plugin....
]
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