You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mb...@apache.org on 2021/06/03 21:57:40 UTC

[asterixdb] 02/08: [NO ISSUE][STO] Add method to init the frame operation call back

This is an automated email from the ASF dual-hosted git repository.

mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit 36ada864f54ba1551ffecb38338f878bf8a7fa9c
Author: Ali Alsuliman <al...@gmail.com>
AuthorDate: Sat May 22 00:43:37 2021 +0300

    [NO ISSUE][STO] Add method to init the frame operation call back
    
    - user model changes: no
    - storage format changes: no
    - interface changes: yes
    
    Details:
    Add open() to IFrameOperationCallback to allow for initialization.
    
    Change-Id: Ia9838b4a938271f0de9d8d6c11212fdbd850df27
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11566
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Michael Blow <mb...@apache.org>
---
 .../asterix/common/dataflow/NoOpFrameOperationCallbackFactory.java  | 5 +++++
 .../runtime/operators/LSMPrimaryInsertOperatorNodePushable.java     | 1 +
 .../runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java     | 6 ++++++
 .../hyracks/storage/am/lsm/common/api/IFrameOperationCallback.java  | 5 +++++
 4 files changed, 17 insertions(+)

diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/NoOpFrameOperationCallbackFactory.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/NoOpFrameOperationCallbackFactory.java
index 1d7ad2d..915f3b3 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/NoOpFrameOperationCallbackFactory.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/NoOpFrameOperationCallbackFactory.java
@@ -55,5 +55,10 @@ public class NoOpFrameOperationCallbackFactory implements IFrameOperationCallbac
         public void fail(Throwable th) {
             // No Op
         }
+
+        @Override
+        public void open() throws HyracksDataException {
+            // No Op
+        }
     }
 }
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java
index a886161..eadb614 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java
@@ -191,6 +191,7 @@ public class LSMPrimaryInsertOperatorNodePushable extends LSMIndexInsertUpdateDe
                 PrimaryIndexLogMarkerCallback callback = new PrimaryIndexLogMarkerCallback((AbstractLSMIndex) index);
                 TaskUtil.put(ILogMarkerCallback.KEY_MARKER_CALLBACK, callback, ctx);
             }
+            frameOpCallback.open();
             writer.open();
             keySearchCmp =
                     BTreeUtils.getSearchMultiComparator(((ITreeIndex) index).getComparatorFactories(), frameTuple);
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java
index f5bddc5..8e0de5f 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java
@@ -291,7 +291,13 @@ public class LSMPrimaryUpsertOperatorNodePushable extends LSMIndexInsertUpdateDe
                 public void fail(Throwable th) {
                     callback.fail(th);
                 }
+
+                @Override
+                public void open() throws HyracksDataException {
+                    callback.open();
+                }
             };
+            frameOpCallback.open();
         } catch (Throwable e) { // NOSONAR: Re-thrown
             throw HyracksDataException.create(e);
         }
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/IFrameOperationCallback.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/IFrameOperationCallback.java
index 78e5862..1f89af2 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/IFrameOperationCallback.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/IFrameOperationCallback.java
@@ -40,4 +40,9 @@ public interface IFrameOperationCallback extends Closeable {
      * @param th
      */
     void fail(Throwable th);
+
+    /**
+     * Called when the task has opened for initialization.
+     */
+    void open() throws HyracksDataException;
 }