ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Ozerov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-2610) Excessive memory usage in GridCacheTtlManager.
Date Wed, 10 Feb 2016 13:49:18 GMT

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

Vladimir Ozerov commented on IGNITE-2610:
-----------------------------------------

It appears that only offheap-ed cache is affected.

*Steps to reproduce*:

1) Open IgniteCacheExpiryPolicyAbstractTest

2) Add the following line to cacheConfiguration() method:
{code}
cfg.setMemoryMode(CacheMemoryMode.OFFHEAP_TIERED);
{code}

3) Add the following unit test:
{code}
    public void testCreateUpdate0() throws Exception {
        startGrids(1);

        long ttl = 60_00000L;
        
        final String key = "key1";
        
        final IgniteCache<String, String> cache = jcache();
        
        for (int i = 0; i < 10_000_000; i++) {
            final IgniteCache<String, String> cache0 = cache.withExpiryPolicy(new ModifiedExpiryPolicy(new
Duration(TimeUnit.MILLISECONDS, ttl)));

            cache0.put(key, key);
        }
    }
{code}

4) Run IgniteCacheAtomicExpiryPolicyTest

5) Observe how GridCacheTtlManager.pendingEntries size grow on each subsequent put.

> Excessive memory usage in GridCacheTtlManager.
> ----------------------------------------------
>
>                 Key: IGNITE-2610
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2610
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: 1.5.0.final
>            Reporter: Vladimir Ozerov
>            Assignee: Dmitry Karachentsev
>            Priority: Critical
>              Labels: important
>             Fix For: 1.6
>
>
> *Problem*
> When key is updated with new value and new expiry policy, old entry is not removed from
"pendingEntries". It leads to excessive memory consumption.
> *Steps to reproduce*
> 1) Create a cache
> 2) Put a lot of entries with same key, but different expiry policies one by one.
> 3) Observe trashed "pendingEntries".
> Concrete fix is to be defined.



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

Mime
View raw message