[
https://issues.jboss.org/browse/JGRP-1331?page=com.atlassian.jira.plugin....
]
Bela Ban commented on JGRP-1331:
--------------------------------
Having 2 arrays: 1 for Addresses and one for byte[] (compressed highest_delivered and
highest_received, as discussed above) defies the purpose of the compression: if we have an
array of byte[] buffers, then the pointer to each byte[] buffer also takes up 8 bytes (64
bit arch), plus the size of the byte[] buffer (say 6 bytes) ! Therefore it is probably
better to store the HD/HR seqnos as long, in a long[] array.
For each address, we store the HRD seqno, followed by the HR seqno. So to get HD for P,
it's seqno_array[index *2];
This costs 8 bytes * 2 = 16 bytes versus, the 8 bytes (pointer) plus ~6 bytes. That's
2 bytes more, but having a long[] array might be more cache friendly, plus passing might
destroy the 2 byte advantage anyway !
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