You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2018/10/23 15:01:16 UTC
[12/50] [abbrv] ignite git commit: IGNITE-9854 Correct remove from
dirtyPages and segCheckpointPages - Fixes #4988.
IGNITE-9854 Correct remove from dirtyPages and segCheckpointPages - Fixes #4988.
Signed-off-by: Dmitriy Govorukhin <dm...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/829dc1f2
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/829dc1f2
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/829dc1f2
Branch: refs/heads/ignite-gg-14206
Commit: 829dc1f240c07731a1ee98ae18c80ea6074dc6c4
Parents: a9f37a2
Author: Ivan Daschinskiy <iv...@gmail.com>
Authored: Thu Oct 18 14:33:28 2018 +0300
Committer: Dmitriy Govorukhin <dm...@gmail.com>
Committed: Thu Oct 18 14:33:28 2018 +0300
----------------------------------------------------------------------
.../cache/persistence/pagemem/PageMemoryImpl.java | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/829dc1f2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
index 55c5fb5..48e33c0 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
@@ -851,11 +851,15 @@ public class PageMemoryImpl implements PageMemoryEx {
if (rmv)
seg.loadedPages.remove(grpId, PageIdUtils.effectivePageId(pageId));
- if (seg.segCheckpointPages != null)
- seg.segCheckpointPages.remove(new FullPageId(pageId, grpId));
+ Collection<FullPageId> cpPages = seg.segCheckpointPages;
- if (seg.dirtyPages != null)
- seg.dirtyPages.remove(new FullPageId(pageId, grpId));
+ if (cpPages != null)
+ cpPages.remove(new FullPageId(pageId, grpId));
+
+ Collection<FullPageId> dirtyPages = seg.dirtyPages;
+
+ if (dirtyPages != null)
+ dirtyPages.remove(new FullPageId(pageId, grpId));
return relPtr;
}
@@ -1875,7 +1879,7 @@ public class PageMemoryImpl implements PageMemoryEx {
private static final int ACQUIRED_PAGES_PADDING = 4;
/** Page ID to relative pointer map. */
- private LoadedPagesMap loadedPages;
+ private final LoadedPagesMap loadedPages;
/** Pointer to acquired pages integer counter. */
private long acquiredPagesPtr;
@@ -1887,7 +1891,7 @@ public class PageMemoryImpl implements PageMemoryEx {
private long memPerTbl;
/** Pages marked as dirty since the last checkpoint. */
- private Collection<FullPageId> dirtyPages = new GridConcurrentHashSet<>();
+ private volatile Collection<FullPageId> dirtyPages = new GridConcurrentHashSet<>();
/** */
private volatile Collection<FullPageId> segCheckpointPages;