Repository: ignite Updated Branches: refs/heads/master abfa0f50b -> 961fc35d2
IGNITE-8114 Additional fix for Add fail recovery mechanism to tracking pages Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/961fc35d Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/961fc35d Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/961fc35d Branch: refs/heads/master Commit: 961fc35d2bd4ef651e70e347e5e4f34ec3f42e41 Parents: abfa0f5 Author: Eduard Shangareev <eshangar...@gridgain.com> Authored: Mon Apr 9 19:15:50 2018 +0300 Committer: dpavlov <dpav...@apache.org> Committed: Mon Apr 9 19:15:50 2018 +0300 ---------------------------------------------------------------------- .../cache/persistence/tree/io/TrackingPageIO.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/961fc35d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/tree/io/TrackingPageIO.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/tree/io/TrackingPageIO.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/tree/io/TrackingPageIO.java index 94885e4..80dbf25 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/tree/io/TrackingPageIO.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/tree/io/TrackingPageIO.java @@ -86,9 +86,11 @@ public class TrackingPageIO extends PageIO { * @param pageId Page id. * @param nextSnapshotTag Tag of next snapshot. * @param pageSize Page size. + * + * @return <code>-1</code> if everything is ok, otherwise last saved tag. */ - public void markChanged(ByteBuffer buf, long pageId, long nextSnapshotTag, long lastSuccessfulSnapshotTag, int pageSize) { - validateSnapshotTag(buf, nextSnapshotTag, lastSuccessfulSnapshotTag, pageSize); + public long markChanged(ByteBuffer buf, long pageId, long nextSnapshotTag, long lastSuccessfulSnapshotTag, int pageSize) { + long tag = validateSnapshotTag(buf, nextSnapshotTag, lastSuccessfulSnapshotTag, pageSize); int cntOfPage = countOfPageToTrack(pageSize); @@ -105,7 +107,7 @@ public class TrackingPageIO extends PageIO { byte newVal = (byte) (byteToUpdate | updateTemplate); if (byteToUpdate == newVal) - return; + return tag; buf.put(idx, newVal); @@ -114,6 +116,8 @@ public class TrackingPageIO extends PageIO { buf.putShort(sizeOff, newSize); assert newSize == countOfChangedPage(buf, nextSnapshotTag, pageSize); + + return tag; } /**