You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2018/10/31 08:56:02 UTC
ignite git commit: IGNITE-10028 Fixed incorrect handling of page
during replacement - Fixes #5093.
Repository: ignite
Updated Branches:
refs/heads/master 2ea420ea4 -> e4881e343
IGNITE-10028 Fixed incorrect handling of page during replacement - Fixes #5093.
Signed-off-by: Alexey Goncharuk <al...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e4881e34
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e4881e34
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e4881e34
Branch: refs/heads/master
Commit: e4881e343afaf4df1b42c2b7b4a15885489e4a72
Parents: 2ea420e
Author: vd-pyatkov <vp...@gridgain.com>
Authored: Wed Oct 31 11:54:36 2018 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed Oct 31 11:54:36 2018 +0300
----------------------------------------------------------------------
.../GridCacheDatabaseSharedManager.java | 26 ++++----------------
1 file changed, 5 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e4881e34/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
index e09ad22..fb4ec1e 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
@@ -1106,13 +1106,11 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
(fullId, pageBuf, tag) -> {
memMetrics.onPageWritten();
- // First of all, write page to disk.
- storeMgr.write(fullId.groupId(), fullId.pageId(), pageBuf, tag);
-
- pageBuf.rewind();
+ // We can write only page from disk into snapshot.
+ snapshotMgr.beforePageWrite(fullId);
- // Only after write we can write page into snapshot.
- snapshotMgr.flushDirtyPageHandler(fullId, pageBuf, tag);
+ // Write page to disk.
+ storeMgr.write(fullId.groupId(), fullId.pageId(), pageBuf, tag);
AtomicInteger cntr = evictedPagesCntr;
@@ -4115,8 +4113,6 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
private List<FullPageId> writePages(Collection<FullPageId> writePageIds) throws IgniteCheckedException {
ByteBuffer tmpWriteBuf = threadBuf.get();
- long writeAddr = GridUnsafe.bufferAddress(tmpWriteBuf);
-
List<FullPageId> pagesToRetry = new ArrayList<>();
for (FullPageId fullId : writePageIds) {
@@ -4171,19 +4167,7 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
tracker.onDataPageWritten();
}
- if (!skipCrc) {
- PageIO.setCrc(writeAddr, FastCrc.calcCrc(tmpWriteBuf, pageSize()));
-
- tmpWriteBuf.rewind();
- }
-
- int curWrittenPages = writtenPagesCntr.incrementAndGet();
-
- snapshotMgr.onPageWrite(fullId, tmpWriteBuf, curWrittenPages, totalPagesToWrite);
-
- tmpWriteBuf.rewind();
-
- PageStore store = storeMgr.writeInternal(grpId, fullId.pageId(), tmpWriteBuf, tag, false);
+ PageStore store = storeMgr.writeInternal(grpId, fullId.pageId(), tmpWriteBuf, tag, true);
updStores.computeIfAbsent(store, k -> new LongAdder()).increment();
}