You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2019/02/04 08:16:59 UTC

[ignite] 08/08: WIP.

This is an automated email from the ASF dual-hosted git repository.

vozerov pushed a commit to branch col_model
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit 9dfda733fbc7523ff6c653dbf802013cf2dbdbac
Author: devozerov <vo...@gridgain.com>
AuthorDate: Mon Feb 4 11:16:33 2019 +0300

    WIP.
---
 .../internal/processors/query/h2/H2Utils.java      | 15 +++++++++++++++
 .../processors/query/h2/opt/GridH2IndexBase.java   | 22 ----------------------
 .../query/h2/opt/join/BroadcastCursor.java         |  3 ++-
 .../query/h2/twostep/GridMergeIndexSorted.java     |  4 ++--
 4 files changed, 19 insertions(+), 25 deletions(-)

diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Utils.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Utils.java
index 7078b43..684ecf7 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Utils.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/H2Utils.java
@@ -32,6 +32,7 @@ import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -728,4 +729,18 @@ public class H2Utils {
             return prepared(s);
         }
     }
+
+    /**
+     * @param arr Array.
+     * @param off Offset.
+     * @param cmp Comparator.
+     */
+    public static <Z> void bubbleUp(Z[] arr, int off, Comparator<Z> cmp) {
+        for (int i = off, last = arr.length - 1; i < last; i++) {
+            if (cmp.compare(arr[i], arr[i + 1]) <= 0)
+                break;
+
+            U.swap(arr, i, i + 1);
+        }
+    }
 }
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java
index fa09e69..46258b0 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2IndexBase.java
@@ -67,7 +67,6 @@ import org.h2.value.Value;
 import javax.cache.CacheException;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -97,12 +96,6 @@ public abstract class GridH2IndexBase extends BaseIndex {
     private IgniteLogger log;
 
     /** */
-    private final CIX2<ClusterNode,Message> locNodeHnd = new CIX2<ClusterNode,Message>() {
-        @Override public void applyx(ClusterNode clusterNode, Message msg) {
-            onMessage0(clusterNode.id(), msg);
-        }
-    };
-
     protected GridCacheContext<?, ?> ctx;
 
     /**
@@ -527,21 +520,6 @@ public abstract class GridH2IndexBase extends BaseIndex {
     }
 
     /**
-     * @param arr Array.
-     * @param off Offset.
-     * @param cmp Comparator.
-     */
-    public static <Z> void bubbleUp(Z[] arr, int off, Comparator<Z> cmp) {
-        // TODO Optimize: use binary search if the range in array is big.
-        for (int i = off, last = arr.length - 1; i < last; i++) {
-            if (cmp.compare(arr[i], arr[i + 1]) <= 0)
-                break;
-
-            U.swap(arr, i, i + 1);
-        }
-    }
-
-    /**
      * @return Index segments count.
      */
     public abstract int segmentsCount();
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/join/BroadcastCursor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/join/BroadcastCursor.java
index 632d72a..9d12028 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/join/BroadcastCursor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/join/BroadcastCursor.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.processors.query.h2.opt.join;
 
+import org.apache.ignite.internal.processors.query.h2.H2Utils;
 import org.apache.ignite.internal.processors.query.h2.opt.GridH2IndexBase;
 import org.h2.index.Cursor;
 import org.h2.result.Row;
@@ -122,7 +123,7 @@ public class BroadcastCursor implements Cursor, Comparator<RangeStream> {
         }
 
         // Bubble up current min stream with respect to fetched row to achieve correct sort order of streams.
-        GridH2IndexBase.bubbleUp(streams, off, this);
+        H2Utils.bubbleUp(streams, off, this);
 
         return true;
     }
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexSorted.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexSorted.java
index 880e305..482752a 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexSorted.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexSorted.java
@@ -32,6 +32,7 @@ import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.internal.GridKernalContext;
+import org.apache.ignite.internal.processors.query.h2.H2Utils;
 import org.apache.ignite.internal.processors.query.h2.opt.GridH2Cursor;
 import org.apache.ignite.internal.processors.query.h2.opt.H2PlainRowFactory;
 import org.apache.ignite.internal.util.typedef.F;
@@ -49,7 +50,6 @@ import org.h2.value.Value;
 import org.jetbrains.annotations.Nullable;
 
 import static java.util.Collections.emptyIterator;
-import static org.apache.ignite.internal.processors.query.h2.opt.GridH2IndexBase.bubbleUp;
 
 /**
  * Sorted index.
@@ -258,7 +258,7 @@ public final class GridMergeIndexSorted extends GridMergeIndex {
                 return; // All streams are done.
 
             if (streams[off].next())
-                bubbleUp(streams, off, streamCmp);
+                H2Utils.bubbleUp(streams, off, streamCmp);
             else
                 streams[off++] = null; // Move left bound and nullify empty stream.
         }