abdullah alamoudi has submitted this change and it was merged. 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 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2642 Sonar-Qube: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Contrib: Jenkins <[email protected]> Integration-Tests: Jenkins <[email protected]> Reviewed-by: Michael Blow <[email protected]> --- 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(-) Approvals: Anon. E. Moose #1000171: Jenkins: Verified; No violations found; ; Verified Michael Blow: Looks good to me, approved 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..f392139 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("\"").append(READER_STATS_FIELD_NAME).append("\":").append(readerStats).append(", "); + } + 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: merged Gerrit-Change-Id: Ib064bd97b33f2d9da330bac3a49bd4c6831faaca Gerrit-PatchSet: 7 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: abdullah alamoudi <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Till Westmann <[email protected]> Gerrit-Reviewer: abdullah alamoudi <[email protected]>
