[infinispan-issues] [JBoss JIRA] (ISPN-4678) Trim down ExpandableMarshalledValueByteStream to the actual data length before storing in cache

Dan Berindei (JIRA) issues at jboss.org
Fri Sep 5 09:45:00 EDT 2014


    [ https://issues.jboss.org/browse/ISPN-4678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12999393#comment-12999393 ] 

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)


More information about the infinispan-issues mailing list