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

Reply via email to