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

ASF GitHub Bot commented on IGNITE-8681:
----------------------------------------

GitHub user AMashenkov opened a pull request:

    https://github.com/apache/ignite/pull/4110

    IGNITE-8681: Introduce expiry throttling.

    Thread will avoid try to clean expired entries if recent try has finished 
with "nothing to clean".

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/gridgain/apache-ignite ignite-8681

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/ignite/pull/4110.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #4110
    
----
commit c069f31c90a5b4be02d4d6b4b390f278fb6c98f3
Author: Andrey V. Mashenkov <andrey.mashenkov@...>
Date:   2018-06-01T15:51:37Z

    WIP. Introduce expiry throttling.
    Thread will avoid try to clean expired entries if recent try has finished 
with "nothing to clean".

----


> Using ExpiryPolicy with persistence causes significant slowdown.
> ----------------------------------------------------------------
>
>                 Key: IGNITE-8681
>                 URL: https://issues.apache.org/jira/browse/IGNITE-8681
>             Project: Ignite
>          Issue Type: Improvement
>          Components: cache
>            Reporter: Andrew Mashenkov
>            Assignee: Andrew Mashenkov
>            Priority: Major
>              Labels: performance
>             Fix For: 2.6
>
>
> Almost all ignite operations calls CU.unwindEvicts() on finish to help to 
> evict expired entries.
> In unwindEvicts(), threads iterate over all node partitions and check every 
> partition PendingTree for expired entries. This costs too much.
> We already have a flag on per-cachegroup basis that indicated ExpiryPolicy is 
> used. It raised once expiring entry has been put to cache or we initialize 
> non-empty pending tree from persistence.
> So, we have to optimize a case when there is no expired pending entries, but 
> pending tree is non-empty.
> We can add some throttling on per-partition basis to reduce useless pending 
> tree lookups. 
> E.g. if there is nothing to clean, no thread should check partition during 
> next 100ms interval.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to