Murtadha Hubail has submitted this change and it was merged. Change subject: Pass resource partition id to IModificationOperationCallback ......................................................................
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 <[email protected]> Reviewed-by: abdullah alamoudi <[email protected]> --- M hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/IClusterLifecycleListener.java M hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/replication/IReplicationJob.java M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IIndexDataflowHelper.java M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IModificationOperationCallbackFactory.java M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexDataflowHelper.java M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java M hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/impls/NoOpOperationCallbackFactory.java 7 files changed, 27 insertions(+), 10 deletions(-) Approvals: abdullah alamoudi: Looks good to me, approved Jenkins: Verified 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 @@ */ 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 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 enum ReplicationOperation { REPLICATE, - DELETE, - STOP + DELETE } public enum ReplicationExecutionType { 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 IHyracksTaskContext getTaskContext(); public String getResourcePath(); + + /** + * @return The resource unique storage partition id + */ + public int getResourcePartition(); } 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 @@ 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; } 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 @@ 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 @@ 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 @@ 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 String getResourcePath() { return resourcePath; } -} + + @Override + public int getResourcePartition() { + return resourcePartition; + } +} \ No newline at end of file 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 @@ 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) { 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 @@ * 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 @@ @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; } } -- To view, visit https://asterix-gerrit.ics.uci.edu/589 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: Iddd566ea97512c1dbd2217befdc2bb8822e77763 Gerrit-PatchSet: 9 Gerrit-Project: hyracks Gerrit-Branch: master Gerrit-Owner: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Till Westmann <[email protected]> Gerrit-Reviewer: abdullah alamoudi <[email protected]>
