abdullah alamoudi has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/2642

Change subject: [NO ISSUE][ING] Allow Readers to add their own stats
......................................................................

[NO ISSUE][ING] Allow Readers to add their own stats

- user model changes: no
- storage format changes: no
- interface changes: yes
  - Add IRecordReader.getStats()

Details:
- Allow record reader to contribute their own stats.

Change-Id: Ib064bd97b33f2d9da330bac3a49bd4c6831faaca
---
M 
asterixdb/asterix-active/src/main/java/org/apache/asterix/active/ActiveSourceOperatorNodePushable.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/api/IRecordReader.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataflow/FeedRecordDataFlowController.java
3 files changed, 21 insertions(+), 3 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/42/2642/1

diff --git 
a/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/ActiveSourceOperatorNodePushable.java
 
b/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/ActiveSourceOperatorNodePushable.java
index 1df9020..2f30df4 100644
--- 
a/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/ActiveSourceOperatorNodePushable.java
+++ 
b/asterixdb/asterix-active/src/main/java/org/apache/asterix/active/ActiveSourceOperatorNodePushable.java
@@ -63,8 +63,10 @@
 
     @Override
     public final void stop() throws HyracksDataException, InterruptedException 
{
-        abort();
         synchronized (this) {
+            if (!done) {
+                abort();
+            }
             while (!done) {
                 wait();
             }
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/api/IRecordReader.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/api/IRecordReader.java
index 08ffe18..9033814 100644
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/api/IRecordReader.java
+++ 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/api/IRecordReader.java
@@ -77,4 +77,11 @@
     public default IFeedMarker getProgressReporter() {
         return null;
     }
+
+    /**
+     * @return JSON String containing ingestion stats
+     */
+    default String getStats() {
+        return null;
+    }
 }
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataflow/FeedRecordDataFlowController.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataflow/FeedRecordDataFlowController.java
index 164ff68..8771b7a 100644
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataflow/FeedRecordDataFlowController.java
+++ 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataflow/FeedRecordDataFlowController.java
@@ -40,6 +40,7 @@
 public class FeedRecordDataFlowController<T> extends 
AbstractFeedDataFlowController {
     public static final String INCOMING_RECORDS_COUNT_FIELD_NAME = 
"incoming-records-count";
     public static final String FAILED_AT_PARSER_RECORDS_COUNT_FIELD_NAME = 
"failed-at-parser-records-count";
+    public static final String READER_STATS_FIELD_NAME = "reader-stats";
 
     public enum State {
         CREATED,
@@ -257,7 +258,15 @@
 
     @Override
     public String getStats() {
-        return "{\"" + INCOMING_RECORDS_COUNT_FIELD_NAME + "\": " + 
incomingRecordsCount + ", \""
-                + FAILED_AT_PARSER_RECORDS_COUNT_FIELD_NAME + "\": " + 
failedRecordsCount + "}";
+        String readerStats = recordReader.getStats();
+        StringBuilder str = new StringBuilder();
+        str.append("{\"");
+        if (readerStats != null) {
+            
str.append(READER_STATS_FIELD_NAME).append("\":").append(readerStats);
+        }
+        str.append(", 
\"").append(INCOMING_RECORDS_COUNT_FIELD_NAME).append("\": 
").append(incomingRecordsCount)
+                .append(", 
\"").append(FAILED_AT_PARSER_RECORDS_COUNT_FIELD_NAME).append("\": ")
+                .append(failedRecordsCount).append("}");
+        return str.toString();
     }
 }

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2642
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib064bd97b33f2d9da330bac3a49bd4c6831faaca
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <[email protected]>

Reply via email to