ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrey Martianov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-3621) Make GridCacheTtlManager singleton
Date Thu, 15 Sep 2016 14:12:20 GMT

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

Andrey Martianov commented on IGNITE-3621:

Cleanup worker and related logic extracted into shared GridCacheSharedTtlCleanupManager. Single
worker thread are started only if at least one cache created with 'isEagerTtl' flag set. This
worker checks caches on expired entries every 500 ms.

> Make GridCacheTtlManager singleton
> ----------------------------------
>                 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
>            Assignee: Andrey Martianov
>              Labels: performance
> 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