>From Ali Alsuliman <[email protected]>: Ali Alsuliman has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18113 )
Change subject: [NO ISSUE][FUN] Skip job capacity assignment for completed/active requests ...................................................................... [NO ISSUE][FUN] Skip job capacity assignment for completed/active requests - user model changes: no - storage format changes: no - interface changes: no Change-Id: I87c2fd9c864b29e8ec905df9d22e1e5cfa99147c Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18021 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> Reviewed-by: Wail Alkowaileet <[email protected]> (cherry picked from commit d46e8b69468d1f01ba50595d1304ee8e28aa7785) --- M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/CompletedRequestsDatasource.java M asterixdb/asterix-app/src/test/resources/runtimets/results/misc/completed_requests/completed_requests.3.regex M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FunctionDataSource.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java M asterixdb/asterix-app/src/test/resources/runtimets/results/misc/active_requests/active_requests.4.regex M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/ActiveRequestsDatasource.java 6 files changed, 44 insertions(+), 6 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/13/18113/1 diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java index 05e7f7b..733da2d 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java @@ -24,6 +24,7 @@ import java.util.function.Predicate; import org.apache.asterix.metadata.declared.DataSource; +import org.apache.asterix.metadata.declared.FunctionDataSource; import org.apache.asterix.metadata.utils.MetadataConstants; import org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint; import org.apache.hyracks.algebricks.core.algebra.expressions.IConflictingTypeResolver; @@ -83,10 +84,10 @@ } for (Int2ObjectMap.Entry<Set<DataSource>> me : dataSourceMap.int2ObjectEntrySet()) { int dataSourceType = me.getIntKey(); - if (dataSourceType != DataSource.Type.INTERNAL_DATASET) { + if (dataSourceType != DataSource.Type.INTERNAL_DATASET && dataSourceType != DataSource.Type.FUNCTION) { return false; } - Predicate<DataSource> dataSourceTest = AsterixOptimizationContext::isMetadata; + Predicate<DataSource> dataSourceTest = AsterixOptimizationContext::skipJobCapacityAssignment; if (!me.getValue().stream().allMatch(dataSourceTest)) { return false; } @@ -94,7 +95,11 @@ return true; } - private static boolean isMetadata(DataSource ds) { - return MetadataConstants.METADATA_DATAVERSE_NAME.equals(ds.getId().getDataverseName()); + private static boolean skipJobCapacityAssignment(DataSource ds) { + return MetadataConstants.METADATA_DATAVERSE_NAME.equals(ds.getId().getDataverseName()) || isSkipping(ds); + } + + private static boolean isSkipping(DataSource ds) { + return (ds instanceof FunctionDataSource) && ((FunctionDataSource) ds).skipJobCapacityAssignment(); } } diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/ActiveRequestsDatasource.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/ActiveRequestsDatasource.java index 24a127a..5239d01 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/ActiveRequestsDatasource.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/ActiveRequestsDatasource.java @@ -43,4 +43,9 @@ AlgebricksAbsolutePartitionConstraint.randomLocation(locations.getLocations()); return new ClientRequestsFunction(randomLocation, ClientRequestsRequest.RequestType.RUNNING); } + + @Override + public boolean skipJobCapacityAssignment() { + return true; + } } diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/CompletedRequestsDatasource.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/CompletedRequestsDatasource.java index 0bfbff1..f02af21 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/CompletedRequestsDatasource.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/CompletedRequestsDatasource.java @@ -43,4 +43,9 @@ AlgebricksAbsolutePartitionConstraint.randomLocation(locations.getLocations()); return new ClientRequestsFunction(randomLocation, ClientRequestsRequest.RequestType.COMPLETED); } + + @Override + public boolean skipJobCapacityAssignment() { + return true; + } } diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/active_requests/active_requests.4.regex b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/active_requests/active_requests.4.regex index e2d166b..695472c 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/active_requests/active_requests.4.regex +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/active_requests/active_requests.4.regex @@ -1 +1 @@ -/memory\D+229376/ \ No newline at end of file +/memory\D+0/ \ No newline at end of file diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/completed_requests/completed_requests.3.regex b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/completed_requests/completed_requests.3.regex index e2d166b..695472c 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/completed_requests/completed_requests.3.regex +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/completed_requests/completed_requests.3.regex @@ -1 +1 @@ -/memory\D+229376/ \ No newline at end of file +/memory\D+0/ \ No newline at end of file diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FunctionDataSource.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FunctionDataSource.java index 97c4c5d..3b6bd9d 100644 --- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FunctionDataSource.java +++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FunctionDataSource.java @@ -106,6 +106,10 @@ tupleFilterFactory, outputLimit); } + public boolean skipJobCapacityAssignment() { + return false; + } + protected abstract IDatasourceFunction createFunction(MetadataProvider metadataProvider, AlgebricksAbsolutePartitionConstraint locations); -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18113 To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: stabilization-40cfb8705b Gerrit-Change-Id: I87c2fd9c864b29e8ec905df9d22e1e5cfa99147c Gerrit-Change-Number: 18113 Gerrit-PatchSet: 1 Gerrit-Owner: Ali Alsuliman <[email protected]> Gerrit-MessageType: newchange
