>From Ian Maxon <[email protected]>: Ian Maxon has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17410 )
Change subject: [ASTERIXDB-3127][RT] Fix ConcurrentModificationException in ANALYZE DATASET ...................................................................... [ASTERIXDB-3127][RT] Fix ConcurrentModificationException in ANALYZE DATASET - user model changes: no - storage format changes: no - interface changes: no Details: Move the indexStats out of the descriptor. This being modified between instances of the pushRuntime created inside was causing the exception. Also enable an ANALYZE DATASET test that was accidentally left disabled Change-Id: I7cbff25b14346ca8eca5baa7e0fe8fb1da72f271 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17410 Tested-by: Jenkins <[email protected]> Reviewed-by: Ian Maxon <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> Integration-Tests: Jenkins <[email protected]> --- M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.06.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.04.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/DatasetStreamStatsOperatorDescriptor.java 4 files changed, 32 insertions(+), 4 deletions(-) Approvals: Ian Maxon: Looks good to me, but someone else must approve Ali Alsuliman: Looks good to me, approved Jenkins: Verified; Verified Anon. E. Moose #1000171: diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.04.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.04.query.sqlpp index 9c01681..e674c09 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.04.query.sqlpp +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.04.query.sqlpp @@ -19,6 +19,6 @@ USE test; +SELECT t.DatasetName, t.IndexName, t.IndexStructure, t.SampleCardinalityTarget, t.SourceCardinality, t.SourceAvgItemSize, t.IndexStats FROM `Metadata`.`Index` t WHERE t.IndexStructure = "SAMPLE" -SELECT t.* EXCLUDE DataverseName, SearchKey, IsPrimary, Timestamp, PendingOp, SampleSeed ORDER BY t.DatasetName, t.IndexName; \ No newline at end of file diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.06.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.06.query.sqlpp index 9c01681..dcb57b2 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.06.query.sqlpp +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/analyze-dataset-with-indexes/analyze-dataset-with-indexes.06.query.sqlpp @@ -19,6 +19,6 @@ USE test; +SELECT t.DatasetName, t.IndexName, t.IndexStructure, t.SampleCardinalityTarget, t.SourceCardinality, t.SourceAvgItemSize, t.IndexStats FROM `Metadata`.`Index` t WHERE t.IndexStructure = "SAMPLE" -SELECT t.* EXCLUDE DataverseName, SearchKey, IsPrimary, Timestamp, PendingOp, SampleSeed -ORDER BY t.DatasetName, t.IndexName; \ No newline at end of file +ORDER BY t.DatasetName, t.IndexName; diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml index 17df689..31183f3 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml +++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml @@ -4130,6 +4130,11 @@ <output-dir compare="Text">analyze-dataset-1</output-dir> </compilation-unit> </test-case> + <test-case FilePath="ddl"> + <compilation-unit name="analyze-dataset-with-indexes"> + <output-dir compare="Text">analyze-dataset-with-indexes</output-dir> + </compilation-unit> + </test-case> <test-case FilePath="ddl/create-index"> <compilation-unit name="create-index-1"> <output-dir compare="Text">create-index-1</output-dir> diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/DatasetStreamStatsOperatorDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/DatasetStreamStatsOperatorDescriptor.java index ba29450..4f2e419 100644 --- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/DatasetStreamStatsOperatorDescriptor.java +++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/DatasetStreamStatsOperatorDescriptor.java @@ -55,7 +55,6 @@ private final String operatorName; private final IIndexDataflowHelperFactory[] indexes; private final String[] indexesNames; - private Map<String, IndexStats> indexStats; public DatasetStreamStatsOperatorDescriptor(IOperatorDescriptorRegistry spec, RecordDescriptor rDesc, String operatorName, IIndexDataflowHelperFactory[] indexes, String[] indexesNames) { @@ -75,6 +74,7 @@ private FrameTupleAccessor fta; private long totalTupleCount; private long totalTupleLength; + private Map<String, IndexStats> indexStats; @Override public void open() throws HyracksDataException { -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17410 To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: neo Gerrit-Change-Id: I7cbff25b14346ca8eca5baa7e0fe8fb1da72f271 Gerrit-Change-Number: 17410 Gerrit-PatchSet: 7 Gerrit-Owner: Ian Maxon <[email protected]> Gerrit-Reviewer: Ali Alsuliman <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Ian Maxon <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Vijay Sarathy <[email protected]> Gerrit-Reviewer: Wail Alkowaileet <[email protected]> Gerrit-MessageType: merged
