You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by se...@apache.org on 2017/02/16 14:41:06 UTC
[14/17] ignite git commit: ignite-4652 - b+tree finished
ignite-4652 - b+tree finished
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a6e2569e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a6e2569e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a6e2569e
Branch: refs/heads/ignite-4652
Commit: a6e2569e0834593ff79e8522a203e9a97d0bcf96
Parents: 607e418
Author: Sergi Vladykin <se...@gmail.com>
Authored: Wed Feb 15 19:36:03 2017 +0300
Committer: Sergi Vladykin <se...@gmail.com>
Committed: Wed Feb 15 19:36:03 2017 +0300
----------------------------------------------------------------------
.../internal/processors/cache/database/tree/BPlusTree.java | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a6e2569e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
index 904d91e..5971844 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
@@ -363,7 +363,10 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
// Can happen only for invoke, otherwise inner key must be replaced on the way down.
assert p.invoke;
- p.needReplaceInner = TRUE;
+ // We need to restart the operation from root to perform inner replace.
+ // On the second pass we will not get here (will avoid infinite loop) because
+ // needReplaceInner will be DONE or our key will not be the rightmost anymore.
+ return RETRY_ROOT;
}
else
p.finish();
@@ -1515,7 +1518,7 @@ public abstract class BPlusTree<L, T extends L> extends DataStructure implements
continue;
}
- // Put does insert on the same level.
+ // Unfinished Put does insertion on the same level.
if (x.isPut())
continue;