[ https://issues.apache.org/jira/browse/IGNITE-8681?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16531629#comment-16531629 ]
Ivan Rakov commented on IGNITE-8681: ------------------------------------ Thanks for your contribution! Merged to master. > 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: Critical > Labels: performance > Fix For: 2.7 > > > 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)