ignite-3477 Do not try expire if there are no pending entries.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0314dec7 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0314dec7 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0314dec7 Branch: refs/heads/ignite-4652 Commit: 0314dec71b19c90f06ed13c415dfed269cac3ddb Parents: 5bde9b1 Author: sboikov <sboi...@gridgain.com> Authored: Mon Feb 13 14:58:01 2017 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Mon Feb 13 14:58:01 2017 +0300 ---------------------------------------------------------------------- .../processors/cache/IgniteCacheOffheapManagerImpl.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/0314dec7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java index 531665c..5df99b6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java @@ -98,6 +98,9 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple protected PendingEntriesTree pendingEntries; /** */ + private volatile boolean hasPendingEntries; + + /** */ private static final PendingRow START_PENDING_ROW = new PendingRow(Long.MIN_VALUE, 0); /** */ @@ -773,7 +776,7 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple IgniteInClosure2X<GridCacheEntryEx, GridCacheVersion> c, int amount ) throws IgniteCheckedException { - if (pendingEntries != null) { + if (hasPendingEntries && pendingEntries != null) { GridCacheVersion obsoleteVer = null; long now = U.currentTimeMillis(); @@ -979,9 +982,12 @@ public class IgniteCacheOffheapManagerImpl extends GridCacheManagerAdapter imple rowStore.removeRow(old.link()); } - if (pendingEntries != null && expireTime != 0) + if (pendingEntries != null && expireTime != 0) { pendingEntries.putx(new PendingRow(expireTime, dataRow.link())); + hasPendingEntries = true; + } + updateIgfsMetrics(key, (old != null ? old.value() : null), val); } finally {