ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eduard Shangareev (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-3621) Make GridCacheTtlManager singleto
Date Wed, 03 Aug 2016 10:41:20 GMT
Eduard Shangareev created IGNITE-3621:

             Summary: Make GridCacheTtlManager singleto
                 Key: IGNITE-3621
                 URL: https://issues.apache.org/jira/browse/IGNITE-3621
             Project: Ignite
          Issue Type: Bug
          Components: cache
    Affects Versions: 1.6
            Reporter: Eduard Shangareev

Now every cache has own TTL manager, which creates CleanupWorker = new extra thread. This
can cause to extra hundreds of threads (redundant context switches = performance penalty).

Also, under IGNITE-3513 every put can enter critical section to notify worker. Obviously,
it is not good from performance point of view.

So, my proposal is next:
1. Expiration should be done on every cache action (on exit thread which updates cache should
invoke {{expire}}).
2. TtlManager will exist only in one instance.
3. CleanupWorker will be the only backup if there is no cache activity. It will wake up with
some period to check for work (500 ms, for example).

Moreover, now we keep on-heap pending entries even if a cache is kept off-head. At least,
this issue needs discussion.

This message was sent by Atlassian JIRA

View raw message