[
https://issues.jboss.org/browse/JGRP-1331?page=com.atlassian.jira.plugin....
]
Bela Ban edited comment on JGRP-1331 at 8/23/11 7:19 AM:
---------------------------------------------------------
Digest actually consists of a ConcurrentHashMap of senders (Address) and
(low,high_recv,high_del) entries (Entry).
The ConcurrentHashMap is (1) absolutely not necessary, as Entry is immutable and (2)
overkill as it adds to the size of a Digest in memory !
SOLUTION: replace ConcurrentHashMap with something more specific and less memory hungry,
e.g. similar to org.jgroups.util.Headers. Even a HashMap would be less memory hungry than
a ConcurrentHashMap !
We could use 2 arrays: one for senders and one for Digests (or byte[] buffers, see below).
Note that digests are usually *not* accessed randomly, but most access patterns iterate
through a digest, and get all senders and their associated Digest.Entry's in turn.
This favors use of 2 arrays rather than a hashmap !
was (Author: belaban):
Digest actually consists of a ConcurrentHashMap of senders (Address) and
(low,high_recv,high_del) entries (Entry).
The ConcurrentHashMap is (1) absolutely not necessary, as Entry is immutable and (2)
overkill as it adds to the size of a Digest in memory !
SOLUTION: replace ConcurrentHashMap with something more specific and less memory hungry,
e.g. similar to org.jgroups.util.Headers. Even a HashMap would be less memory hungry than
a ConcurrentHashMap !
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