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;
     }
 
     /**

Reply via email to