Are you sure both representations are kept?

MarshalledValueInterceptor.visitGetKeyValueCommand() should call
MarshalledValue.compact just before returning, which should keep only one
representation.



On Thu, Jul 18, 2013 at 3:44 PM, Mircea Markus <mmar...@redhat.com> wrote:

> Hi,
>
> We have the following behaviour when storeAsBinary is enabled:
> - when an entry is added it is initially stored in binary format (byte[])
> - when it is read from an *owning node*, it is unmarshalled and the object
> reference is cached in memory together with the byte representation
> - the object reference is only cleaned up when cache.compact() is invoked
> explicitly
>
> Assuming a key is read uniformly on all the nodes, after a while the
> system ends up with all the entries stored twice: the byte[] and the object
> in unserialized form. Of course this can be mitigated by asking the users
> to invoke Cache.compact - but that's quite confusing and not very user
> friendly as the user needs to be concerned with memory management.
>
> Can anybody think of some reasons why the value is kept twice? I mean
> besides optimising for local gets, which I think is not a good enough
> reason given the potentially huge memory consumption and the complexity
> added.
>
> Cheers,
> --
> Mircea Markus
> Infinispan lead (www.infinispan.org)
>
>
>
>
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to