[
https://issues.jboss.org/browse/ISPN-4678?page=com.atlassian.jira.plugin....
]
Dan Berindei commented on ISPN-4678:
------------------------------------
[~mgencur] If you want to always copy the buffer to the exact size, yes, growing by 2 is
probably better than 1.5. I was thinking that a growth factor of 1.5 would remove the need
for some of the buffer copies, because the wasted space would be small enough.
One more thing: not all values that are serialized are stored in the data container, some
are just sent to another node and discarded (e.g. if the originator is not the primary
owner, in non-tx caches). In that case, it really doesn't make sense to copy the
buffer, regardless of the amount of space saved.
Trim down ExpandableMarshalledValueByteStream to the actual data
length before storing in cache
-----------------------------------------------------------------------------------------------
Key: ISPN-4678
URL:
https://issues.jboss.org/browse/ISPN-4678
Project: Infinispan
Issue Type: Enhancement
Components: Core
Affects Versions: 7.0.0.Beta1
Reporter: Martin Gencur
Assignee: Martin Gencur
When storeAsBinary configuration flag is used, the ExpandableMarshalledValueByteStream is
used to serialize objects to byte arrays.
However, for value size up to 4kB, almost half of the space for each cache entry can be
wasted because the ByteStream is stored as is - with the additional space for future
expansion.
For value size greater than 4kB, only additional 25% of actual value size can be wasted.
But as these values can be quite large, the wasted space gets bigger too.
It is not necessary to store ExpandableMarshalledValueByteStream as is and can be
shrinked to actual data size before storing in cache.
--
This message was sent by Atlassian JIRA
(v6.3.1#6329)