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 2017/03/14 13:54:56 UTC

[1/2] ignite git commit: Wired up new index state abstraction with propose callback.

Repository: ignite
Updated Branches:
  refs/heads/ignite-4565-ddl cec52fd44 -> 4cc2b606b


Wired up new index state abstraction with propose callback.


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

Branch: refs/heads/ignite-4565-ddl
Commit: 440021a9b601cb5b6334572e8c0423c783d83297
Parents: cec52fd
Author: devozerov <vo...@gridgain.com>
Authored: Tue Mar 14 16:53:14 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Tue Mar 14 16:53:14 2017 +0300

----------------------------------------------------------------------
 .../cache/CacheAffinitySharedManager.java       |  2 +-
 .../cache/DynamicCacheChangeRequest.java        | 26 +++++-----------
 .../cache/DynamicCacheDescriptor.java           | 18 +++++------
 .../processors/cache/GridCacheProcessor.java    | 32 ++++++++------------
 4 files changed, 29 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/440021a9/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
index d8eb733..d2b09a8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
@@ -352,7 +352,7 @@ public class CacheAffinitySharedManager<K, V> extends GridCacheSharedManagerAdap
                     false,
                     req.deploymentId());
 
-                desc.indexProposeOperation(req.indexInitOperation());
+                desc.indexStates(req.indexStates());
 
                 DynamicCacheDescriptor old = registeredCaches.put(cacheId, desc);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/440021a9/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java
index 5d274b4..bd2ea17 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java
@@ -28,8 +28,6 @@ import org.apache.ignite.lang.IgniteUuid;
 import org.jetbrains.annotations.Nullable;
 
 import java.io.Serializable;
-import java.util.Collections;
-import java.util.Map;
 import java.util.UUID;
 
 /**
@@ -76,11 +74,8 @@ public class DynamicCacheChangeRequest implements Serializable {
     /** */
     private UUID rcvdFrom;
 
-    /** Index operation in init phase. */
-    private AbstractIndexOperation idxInitOp;
-
     /** Dynamic index states. */
-    private Map<String, QueryIndexStates> idxStates;
+    private QueryIndexStates idxStates;
 
     /** */
     private transient boolean exchangeNeeded;
@@ -296,24 +291,17 @@ public class DynamicCacheChangeRequest implements Serializable {
     }
 
     /**
-     * @return Pending index init operation.
-     */
-    public AbstractIndexOperation indexInitOperation() {
-        return idxInitOp;
-    }
-
-    /**
-     * @param idxInitOp Pending index init operation.
+     * @return Index states.
      */
-    public void indexInitOperation(AbstractIndexOperation idxInitOp) {
-        this.idxInitOp = idxInitOp;
+    public QueryIndexStates indexStates() {
+        return idxStates;
     }
 
     /**
-     * @return Dynamic index states.
+     * @param idxStates Index states.
      */
-    public Map<String, QueryIndexStates> indexStates() {
-        return idxStates == null ? Collections.<String, QueryIndexStates>emptyMap() : idxStates;
+    public void indexStates(QueryIndexStates idxStates) {
+        this.idxStates = idxStates;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/440021a9/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
index a8febef..f628e76 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
@@ -24,7 +24,7 @@ import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import org.apache.ignite.internal.processors.plugin.CachePluginManager;
-import org.apache.ignite.internal.processors.query.ddl.AbstractIndexOperation;
+import org.apache.ignite.internal.processors.query.QueryIndexStates;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 import org.apache.ignite.internal.util.typedef.internal.CU;
 import org.apache.ignite.internal.util.typedef.internal.S;
@@ -82,8 +82,8 @@ public class DynamicCacheDescriptor {
     /** */
     private AffinityTopologyVersion rcvdFromVer;
 
-    /** Pending index operation in propose phase. */
-    private AbstractIndexOperation idxProposeOp;
+    /** Dynamic index states. */
+    private QueryIndexStates idxStates;
 
     /**
      * @param ctx Context.
@@ -307,17 +307,17 @@ public class DynamicCacheDescriptor {
     }
 
     /**
-     * @return Pending index propose operation.
+     * @return Index states.
      */
-    public AbstractIndexOperation indexProposeOperation() {
-        return idxProposeOp;
+    public QueryIndexStates indexStates() {
+        return idxStates;
     }
 
     /**
-     * @param idxProposeOp Pending index propose operation.
+     * @param idxStates Index states.
      */
-    public void indexProposeOperation(AbstractIndexOperation idxProposeOp) {
-        this.idxProposeOp = idxProposeOp;
+    public void indexStates(QueryIndexStates idxStates) {
+        this.idxStates = idxStates;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/440021a9/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 6a9f838..482cf47 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -64,6 +64,7 @@ import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.configuration.TransactionConfiguration;
 import org.apache.ignite.events.EventType;
 import org.apache.ignite.internal.GridKernalContext;
+import org.apache.ignite.internal.processors.query.QueryIndexStates;
 import org.apache.ignite.internal.processors.query.QueryUtils;
 import org.apache.ignite.internal.processors.query.ddl.AbstractIndexOperation;
 import org.apache.ignite.internal.processors.query.ddl.IndexAbstractDiscoveryMessage;
@@ -1985,7 +1986,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             req.cacheType(desc.cacheType());
             req.deploymentId(desc.deploymentId());
             req.receivedFrom(desc.receivedFrom());
-            req.indexInitOperation(desc.indexProposeOperation());
+            req.indexStates(desc.indexStates());
 
             reqs.add(req);
         }
@@ -2023,7 +2024,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
             req.cacheType(desc.cacheType());
             req.deploymentId(desc.deploymentId());
             req.receivedFrom(desc.receivedFrom());
-            req.indexInitOperation(desc.indexProposeOperation());
+            req.indexStates(desc.indexStates());
 
             reqs.add(req);
 
@@ -2129,7 +2130,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                                     ccfg.getCacheMode());
                         }
 
-                        existing.indexProposeOperation(req.indexInitOperation());
+                        existing.indexStates(req.indexStates());
                     }
                     else {
                         assert req.cacheType() != null : req;
@@ -2141,7 +2142,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                                 false,
                                 req.deploymentId());
 
-                        desc.indexProposeOperation(req.indexInitOperation());
+                        desc.indexStates(req.indexStates());
 
                         // Received statically configured cache.
                         if (req.initiatingNodeId() == null)
@@ -2743,22 +2744,13 @@ public class GridCacheProcessor extends GridProcessorAdapter {
         }
 
         // Validate request at descriptor level.
-        AbstractIndexOperation oldOp = desc.indexProposeOperation();
+        QueryIndexStates idxStates = desc.indexStates();
 
-        if (oldOp != null) {
-            msg.onError(locNodeId, "Failed to create/drop cache index because another pending operation is in " +
-                "progress [cacheName=" + op.space() + ". newOp=" + op + ", oldOp=" + oldOp + ']');
+        if (idxStates == null)
+            idxStates = new QueryIndexStates();
 
-            return;
-        }
-
-        // For already started cache we must make sure that indexing manager will be able to accommodate it.
-        if (!isMissingQueryCache(desc))
-            cache(op.space()).context().queries().onIndexProposeMessage(msg);
-
-        // Finally, set init operation to cache descriptor.
-        if (!msg.hasError())
-            desc.indexProposeOperation(op);
+        if (idxStates.propose(ctx.localNodeId(), msg))
+            desc.indexStates(idxStates);
     }
 
     /**
@@ -2856,7 +2848,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
                         DynamicCacheDescriptor startDesc =
                             new DynamicCacheDescriptor(ctx, ccfg, req.cacheType(), false, req.deploymentId());
 
-                        startDesc.indexProposeOperation(req.indexInitOperation());
+                        startDesc.indexStates(req.indexStates());
 
                         if (newTopVer == null) {
                             newTopVer = new AffinityTopologyVersion(topVer.topologyVersion(),
@@ -3920,7 +3912,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
 
                     req.deploymentId(desc.deploymentId());
                     req.startCacheConfiguration(descCfg);
-                    req.indexInitOperation(desc.indexProposeOperation());
+                    req.indexStates(desc.indexStates());
                 }
             }
             else {


[2/2] ignite git commit: WIP.

Posted by vo...@apache.org.
WIP.


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

Branch: refs/heads/ignite-4565-ddl
Commit: 4cc2b606bbac00929b6bc29f3f5262c519ae109b
Parents: 440021a
Author: devozerov <vo...@gridgain.com>
Authored: Tue Mar 14 16:54:41 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Tue Mar 14 16:54:41 2017 +0300

----------------------------------------------------------------------
 .../apache/ignite/internal/processors/cache/GridCacheProcessor.java | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/4cc2b606/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 482cf47..2df2ab6 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -1088,6 +1088,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
     private void startCache(GridCacheAdapter<?, ?> cache) throws IgniteCheckedException {
         GridCacheContext<?, ?> cacheCtx = cache.context();
 
+        // TODO: Pass current index state to query processor.
         ctx.query().onCacheStart(cacheCtx);
         ctx.continuous().onCacheStart(cacheCtx);