ignite-484 - backup filter fix + clean up

Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/dc6f2723
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/dc6f2723
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/dc6f2723

Branch: refs/heads/ignite-484
Commit: dc6f27236f393d252541665d8e4579cf418c7a36
Parents: 7436a51
Author: S.Vladykin <svlady...@gridgain.com>
Authored: Wed May 20 00:47:02 2015 +0300
Committer: S.Vladykin <svlady...@gridgain.com>
Committed: Wed May 20 00:47:02 2015 +0300

----------------------------------------------------------------------
 .../cache/query/GridCacheQueryManager.java      | 33 --------------------
 .../processors/query/GridQueryIndexing.java     | 12 ++-----
 .../processors/query/GridQueryProcessor.java    | 13 ++------
 .../processors/query/h2/IgniteH2Indexing.java   | 17 +++++-----
 .../query/h2/twostep/GridMapQueryExecutor.java  |  2 +-
 5 files changed, 13 insertions(+), 64 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc6f2723/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
index d3ebe60..e924886 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
@@ -1856,39 +1856,6 @@ public abstract class GridCacheQueryManager<K, V> 
extends GridCacheManagerAdapte
     }
 
     /**
-     * @param f1 First filter.
-     * @param f2 Second filter.
-     * @return And filter of the given two.
-     */
-    @Nullable private static IndexingQueryFilter and(@Nullable final 
IndexingQueryFilter f1,
-        @Nullable final IndexingQueryFilter f2) {
-        if (f1 == null)
-            return f2;
-
-        if (f2 == null)
-            return f1;
-
-        return new IndexingQueryFilter() {
-            @Nullable @Override public <K, V> IgniteBiPredicate<K, V> 
forSpace(String spaceName) {
-                final IgniteBiPredicate<K, V> fltr1 = f1.forSpace(spaceName);
-                final IgniteBiPredicate<K, V> fltr2 = f2.forSpace(spaceName);
-
-                if (fltr1 == null)
-                    return fltr2;
-
-                if (fltr2 == null)
-                    return fltr1;
-
-                return new IgniteBiPredicate<K, V>() {
-                    @Override public boolean apply(K k, V v) {
-                        return fltr1.apply(k, v) && fltr2.apply(k, v);
-                    }
-                };
-            }
-        };
-    }
-
-    /**
      * Prints memory statistics for debugging purposes.
      */
     @Override public void printMemoryStats() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc6f2723/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
index b1c3970..6b1401d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
@@ -21,12 +21,12 @@ import org.apache.ignite.*;
 import org.apache.ignite.cache.query.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.processors.affinity.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.cache.query.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.lang.*;
 import org.apache.ignite.lang.*;
-import org.apache.ignite.plugin.extensions.communication.*;
 import org.apache.ignite.spi.indexing.*;
 import org.jetbrains.annotations.*;
 
@@ -222,14 +222,8 @@ public interface GridQueryIndexing {
     /**
      * Returns backup filter.
      *
+     * @param topVer Topology version.
      * @return Backup filter.
      */
-    public IndexingQueryFilter backupFilter();
-
-    /**
-     * Gets message factory.
-     *
-     * @return Message factory.
-     */
-    public MessageFactory messageFactory();
+    public IndexingQueryFilter backupFilter(AffinityTopologyVersion topVer);
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc6f2723/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index 7a3cb68..afd0386 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@ -24,7 +24,6 @@ import org.apache.ignite.cache.query.annotations.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.internal.managers.communication.*;
 import org.apache.ignite.internal.processors.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.cache.query.*;
@@ -36,7 +35,6 @@ import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.internal.util.worker.*;
 import org.apache.ignite.lang.*;
-import org.apache.ignite.plugin.extensions.communication.*;
 import org.apache.ignite.spi.indexing.*;
 import org.jetbrains.annotations.*;
 import org.jsr166.*;
@@ -605,7 +603,7 @@ public class GridQueryProcessor extends 
GridProcessorAdapter {
                 throw new CacheException("Failed to find SQL table for type: " 
+ type);
 
             final GridCloseableIterator<IgniteBiTuple<K,V>> i = 
idx.query(space, sqlQry, F.asList(params), typeDesc,
-                idx.backupFilter());
+                idx.backupFilter(null));
 
             if (ctx.event().isRecordable(EVT_CACHE_QUERY_EXECUTED)) {
                 ctx.event().record(new CacheQueryExecutedEvent<>(
@@ -652,13 +650,6 @@ public class GridQueryProcessor extends 
GridProcessorAdapter {
     }
 
     /**
-     * @return Message factory for {@link GridIoManager}.
-     */
-    public MessageFactory messageFactory() {
-        return idx == null ? null : idx.messageFactory();
-    }
-
-    /**
      * Closeable iterator.
      */
     private static interface ClIter<X> extends AutoCloseable, Iterator<X> {
@@ -679,7 +670,7 @@ public class GridQueryProcessor extends 
GridProcessorAdapter {
             String sql = qry.getSql();
             Object[] args = qry.getArgs();
 
-            GridQueryFieldsResult res = idx.queryFields(space, sql, 
F.asList(args), idx.backupFilter());
+            GridQueryFieldsResult res = idx.queryFields(space, sql, 
F.asList(args), idx.backupFilter(null));
 
             if (ctx.event().isRecordable(EVT_CACHE_QUERY_EXECUTED)) {
                 ctx.event().record(new CacheQueryExecutedEvent<>(

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc6f2723/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index 676dce8..1cfc314 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@ -21,6 +21,7 @@ import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.cache.query.*;
 import org.apache.ignite.cache.query.annotations.*;
+import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.affinity.*;
@@ -31,7 +32,6 @@ import org.apache.ignite.internal.processors.query.*;
 import org.apache.ignite.internal.processors.query.h2.opt.*;
 import org.apache.ignite.internal.processors.query.h2.sql.*;
 import org.apache.ignite.internal.processors.query.h2.twostep.*;
-import org.apache.ignite.internal.processors.query.h2.twostep.msg.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.lang.*;
 import org.apache.ignite.internal.util.offheap.unsafe.*;
@@ -40,7 +40,6 @@ import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.*;
 import org.apache.ignite.marshaller.jdk.*;
-import org.apache.ignite.plugin.extensions.communication.*;
 import org.apache.ignite.resources.*;
 import org.apache.ignite.spi.*;
 import org.apache.ignite.spi.indexing.*;
@@ -1355,7 +1354,9 @@ public class IgniteH2Indexing implements 
GridQueryIndexing {
     }
 
     /** {@inheritDoc} */
-    @Override public IndexingQueryFilter backupFilter() {
+    @Override public IndexingQueryFilter backupFilter(AffinityTopologyVersion 
topVer) {
+        final AffinityTopologyVersion topVer0 = topVer != null ? topVer : 
AffinityTopologyVersion.NONE;
+
         return new IndexingQueryFilter() {
             @Nullable @Override public <K, V> IgniteBiPredicate<K, V> 
forSpace(String spaceName) {
                 final GridCacheAdapter<Object, Object> cache = 
ctx.cache().internalCache(spaceName);
@@ -1363,21 +1364,17 @@ public class IgniteH2Indexing implements 
GridQueryIndexing {
                 if (cache.context().isReplicated() || 
cache.configuration().getBackups() == 0)
                     return null;
 
+                final ClusterNode locNode = ctx.discovery().localNode();
+
                 return new IgniteBiPredicate<K, V>() {
                     @Override public boolean apply(K k, V v) {
-                        return 
cache.context().affinity().primary(ctx.discovery().localNode(), k,
-                            AffinityTopologyVersion.NONE);
+                        return cache.context().affinity().primary(locNode, k, 
topVer0);
                     }
                 };
             }
         };
     }
 
-    /** {@inheritDoc} */
-    @Override public MessageFactory messageFactory() {
-        return new GridH2ValueMessageFactory();
-    }
-
     /**
      * @param topVer Topology version.
      * @throws IgniteCheckedException If failed.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc6f2723/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
index aadc511..112949f 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
@@ -303,7 +303,7 @@ public class GridMapQueryExecutor {
             if (nodeRess.put(req.requestId(), qr) != null)
                 throw new IllegalStateException();
 
-            h2.setFilters(h2.backupFilter());
+            h2.setFilters(h2.backupFilter(topVer));
 
             // TODO Prepare snapshots for all the needed tables before the run.
 

Reply via email to