ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Denis Magda (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-4293) Deserialized value is cached if queries are enabled
Date Wed, 23 Nov 2016 21:13:59 GMT

    [ https://issues.apache.org/jira/browse/IGNITE-4293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15691381#comment-15691381
] 

Denis Magda commented on IGNITE-4293:
-------------------------------------

In my understanding all we need to do is to pass {{cfg.isCopyOnRead()}} value instead of {{ctx0.storeValue()}}
into this call 

{code}
        CacheObjectContext res = new CacheObjectBinaryContext(ctx,
            cfg.getName(),
            ctx0.copyOnGet(),
            ctx0.storeValue(),
            binaryEnabled,
            ctx0.addDeploymentInfo());
{code}

that is inside of {{CacheObjectBinaryProcessorImpl.contextForCache()}} method.

> Deserialized value is cached if queries are enabled
> ---------------------------------------------------
>
>                 Key: IGNITE-4293
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4293
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: 1.7
>            Reporter: Valentin Kulichenko
>            Priority: Critical
>
> Here is the problematic piece of code in {{IgniteCacheObjectProcessorImpl}}:
> {code}
> boolean storeVal = ctx.config().isPeerClassLoadingEnabled() ||
>     GridQueryProcessor.isEnabled(ccfg) ||
>     !ccfg.isCopyOnRead();
> {code}
> This flag is set to true if queries are enabled even when binary marshaller is used (this
condition makes sense to other marshallers though). It is then use in {{BinaryObjectImpl.deserializeValue}}:
> {code}
> if (coCtx != null && coCtx.storeValue())
>     obj = obj0;
> {code}
> As a result, memory consumption doubles.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message