[ 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)