You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mh...@apache.org on 2016/02/18 10:53:35 UTC

incubator-asterixdb-hyracks git commit: Pass resource partition id to IModificationOperationCallback

Repository: incubator-asterixdb-hyracks
Updated Branches:
  refs/heads/master c6f2d18df -> eea815d3f


Pass resource partition id to IModificationOperationCallback

- Pass resource partition id to IModificationOperationCallback
  to include it in txn logs.
- New cluster event NODE_SHUTTING_DOWN for graceful shutdown.
- Remove unnecessary replication STOP operation.

Change-Id: Iddd566ea97512c1dbd2217befdc2bb8822e77763
Reviewed-on: https://asterix-gerrit.ics.uci.edu/589
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: abdullah alamoudi <ba...@gmail.com>


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

Branch: refs/heads/master
Commit: eea815d3f8f1740c54be871b6c9a9634d440b10e
Parents: c6f2d18
Author: Murtadha Hubail <mh...@uci.edu>
Authored: Sun Feb 14 02:19:03 2016 -0800
Committer: Murtadha Hubail <hu...@gmail.com>
Committed: Thu Feb 18 01:45:09 2016 -0800

----------------------------------------------------------------------
 .../api/application/IClusterLifecycleListener.java        |  6 ++++++
 .../apache/hyracks/api/replication/IReplicationJob.java   |  3 +--
 .../storage/am/common/api/IIndexDataflowHelper.java       |  5 +++++
 .../common/api/IModificationOperationCallbackFactory.java |  2 +-
 .../storage/am/common/dataflow/IndexDataflowHelper.java   | 10 ++++++++--
 .../IndexInsertUpdateDeleteOperatorNodePushable.java      |  3 ++-
 .../am/common/impls/NoOpOperationCallbackFactory.java     |  8 ++++----
 7 files changed, 27 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-asterixdb-hyracks/blob/eea815d3/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/IClusterLifecycleListener.java
----------------------------------------------------------------------
diff --git a/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/IClusterLifecycleListener.java b/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/IClusterLifecycleListener.java
index 6af2a9b..733382b 100644
--- a/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/IClusterLifecycleListener.java
+++ b/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/IClusterLifecycleListener.java
@@ -26,6 +26,12 @@ import java.util.Set;
  */
 public interface IClusterLifecycleListener {
 
+    public enum ClusterEventType {
+        NODE_JOIN,
+        NODE_FAILURE,
+        NODE_SHUTTING_DOWN //node shutting down gracefully
+    }
+
     /**
      * @param nodeId
      *            A unique identifier of a Node Controller

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb-hyracks/blob/eea815d3/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/replication/IReplicationJob.java
----------------------------------------------------------------------
diff --git a/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/replication/IReplicationJob.java b/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/replication/IReplicationJob.java
index 1948f4b..cbe6d1a 100644
--- a/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/replication/IReplicationJob.java
+++ b/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/replication/IReplicationJob.java
@@ -29,8 +29,7 @@ public interface IReplicationJob {
 
     public enum ReplicationOperation {
         REPLICATE,
-        DELETE,
-        STOP
+        DELETE
     }
 
     public enum ReplicationExecutionType {

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb-hyracks/blob/eea815d3/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IIndexDataflowHelper.java
----------------------------------------------------------------------
diff --git a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IIndexDataflowHelper.java b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IIndexDataflowHelper.java
index 4357770..b39e532 100644
--- a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IIndexDataflowHelper.java
+++ b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IIndexDataflowHelper.java
@@ -46,4 +46,9 @@ public interface IIndexDataflowHelper {
     public IHyracksTaskContext getTaskContext();
 
     public String getResourcePath();
+
+    /**
+     * @return The resource unique storage partition id
+     */
+    public int getResourcePartition();
 }

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb-hyracks/blob/eea815d3/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IModificationOperationCallbackFactory.java
----------------------------------------------------------------------
diff --git a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IModificationOperationCallbackFactory.java b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IModificationOperationCallbackFactory.java
index 120d880..8d618c8 100644
--- a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IModificationOperationCallbackFactory.java
+++ b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IModificationOperationCallbackFactory.java
@@ -25,5 +25,5 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
 
 public interface IModificationOperationCallbackFactory extends Serializable {
     public IModificationOperationCallback createModificationOperationCallback(String resourcePath, long resourceId,
-            Object resource, IHyracksTaskContext ctx) throws HyracksDataException;
+            int resourcePartition, Object resource, IHyracksTaskContext ctx) throws HyracksDataException;
 }

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb-hyracks/blob/eea815d3/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDataflowHelper.java
----------------------------------------------------------------------
diff --git a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDataflowHelper.java b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDataflowHelper.java
index bb4f8a1..3f3d114 100644
--- a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDataflowHelper.java
+++ b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDataflowHelper.java
@@ -45,6 +45,7 @@ public abstract class IndexDataflowHelper implements IIndexDataflowHelper {
     protected final boolean durable;
     protected IIndex index;
     protected final String resourcePath;
+    protected final int resourcePartition;
 
     public IndexDataflowHelper(IIndexOperatorDescriptor opDesc, final IHyracksTaskContext ctx, int partition,
             boolean durable) {
@@ -57,6 +58,7 @@ public abstract class IndexDataflowHelper implements IIndexDataflowHelper {
         this.file = IndexFileNameUtil.getIndexAbsoluteFileRef(opDesc, partition, ctx.getIOManager());
         this.resourcePath = file.getFile().getPath();
         this.durable = durable;
+        this.resourcePartition = opDesc.getFileSplitProvider().getFileSplits()[partition].getPartition();
     }
 
     protected abstract IIndex createIndexInstance() throws HyracksDataException;
@@ -88,7 +90,6 @@ public abstract class IndexDataflowHelper implements IIndexDataflowHelper {
                 resourceID = resourceIdFactory.createId();
                 ILocalResourceFactory localResourceFactory = opDesc.getLocalResourceFactoryProvider()
                         .getLocalResourceFactory();
-                int resourcePartition = opDesc.getFileSplitProvider().getFileSplits()[partition].getPartition();
                 String resourceName = opDesc.getFileSplitProvider().getFileSplits()[partition].getLocalFile().getFile()
                         .getPath();
                 localResourceRepository.insert(localResourceFactory.createLocalResource(resourceID, resourceName,
@@ -160,4 +161,9 @@ public abstract class IndexDataflowHelper implements IIndexDataflowHelper {
     public String getResourcePath() {
         return resourcePath;
     }
-}
+
+    @Override
+    public int getResourcePartition() {
+        return resourcePartition;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb-hyracks/blob/eea815d3/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java
----------------------------------------------------------------------
diff --git a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java
index 6736420..cf44305 100644
--- a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java
+++ b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java
@@ -77,7 +77,8 @@ public class IndexInsertUpdateDeleteOperatorNodePushable extends AbstractUnaryIn
         try {
             writer.open();
             modCallback = opDesc.getModificationOpCallbackFactory().createModificationOperationCallback(
-                    indexHelper.getResourcePath(), indexHelper.getResourceID(), index, ctx);
+                    indexHelper.getResourcePath(), indexHelper.getResourceID(), indexHelper.getResourcePartition(),
+                    index, ctx);
             indexAccessor = index.createAccessor(modCallback, NoOpOperationCallback.INSTANCE);
             ITupleFilterFactory tupleFilterFactory = opDesc.getTupleFilterFactory();
             if (tupleFilterFactory != null) {

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb-hyracks/blob/eea815d3/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/impls/NoOpOperationCallbackFactory.java
----------------------------------------------------------------------
diff --git a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/impls/NoOpOperationCallbackFactory.java b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/impls/NoOpOperationCallbackFactory.java
index 17f9265..b42e619 100644
--- a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/impls/NoOpOperationCallbackFactory.java
+++ b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/impls/NoOpOperationCallbackFactory.java
@@ -29,9 +29,9 @@ import org.apache.hyracks.storage.am.common.api.ISearchOperationCallbackFactory;
  * Dummy NoOp callback factory used primarily for testing. Always returns the {@link NoOpOperationCallback} instance.
  * Implemented as an enum to preserve singleton model while being serializable
  */
-public enum NoOpOperationCallbackFactory implements ISearchOperationCallbackFactory,
-        IModificationOperationCallbackFactory {
-    INSTANCE;
+public enum NoOpOperationCallbackFactory
+    implements ISearchOperationCallbackFactory,IModificationOperationCallbackFactory {
+        INSTANCE;
 
     @Override
     public ISearchOperationCallback createSearchOperationCallback(long resourceId, IHyracksTaskContext ctx) {
@@ -40,7 +40,7 @@ public enum NoOpOperationCallbackFactory implements ISearchOperationCallbackFact
 
     @Override
     public IModificationOperationCallback createModificationOperationCallback(String resourcePath, long resourceId,
-            Object resource, IHyracksTaskContext ctx) throws HyracksDataException {
+            int resourcePartition, Object resource, IHyracksTaskContext ctx) throws HyracksDataException {
         return NoOpOperationCallback.INSTANCE;
     }
 }