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.