Repository: ignite Updated Branches: refs/heads/ignite-2.5 4aa567519 -> cc04c5c70
IGNITE-8114 Additional fix for Add fail recovery mechanism to tracking pages (cherry picked from commit 961fc35) Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/cc04c5c7 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/cc04c5c7 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/cc04c5c7 Branch: refs/heads/ignite-2.5 Commit: cc04c5c70af1bdbba834f73330e73277b60e23fc Parents: 4aa5675 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:17:36 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/cc04c5c7/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; } /**