Merge branch 'gerrit/trinity' into 'master'
Change-Id: I5e541e8190f77eb0719ae8423e8e984d56768b58
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 7b2dd7a..f13e3f2 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
@@ -21,7 +21,9 @@
import java.util.HashSet;
import java.util.Set;
+import java.util.function.Predicate;
+import org.apache.asterix.common.metadata.MetadataConstants;
import org.apache.asterix.metadata.declared.DataSource;
import org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
import org.apache.hyracks.algebricks.core.algebra.expressions.IConflictingTypeResolver;
@@ -73,4 +75,26 @@
public Int2ObjectMap<Set<DataSource>> getDataSourceMap() {
return dataSourceMap;
}
+
+ @Override
+ public boolean skipJobCapacityAssignment() {
+ if (dataSourceMap.isEmpty()) {
+ return false;
+ }
+ for (Int2ObjectMap.Entry<Set<DataSource>> me : dataSourceMap.int2ObjectEntrySet()) {
+ int dataSourceType = me.getIntKey();
+ if (dataSourceType != DataSource.Type.INTERNAL_DATASET) {
+ return false;
+ }
+ Predicate<DataSource> dataSourceTest = AsterixOptimizationContext::isMetadata;
+ if (!me.getValue().stream().allMatch(dataSourceTest)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private static boolean isMetadata(DataSource ds) {
+ return MetadataConstants.METADATA_DATAVERSE_NAME.equals(ds.getId().getDataverseName());
+ }
}
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixMemoryRequirementsRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixMemoryRequirementsRule.java
index 5f835ad..c8f7483 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixMemoryRequirementsRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixMemoryRequirementsRule.java
@@ -63,9 +63,6 @@
int dataSourceType = me.getIntKey();
Predicate<DataSource> dataSourceTest;
switch (dataSourceType) {
- case DataSource.Type.INTERNAL_DATASET:
- dataSourceTest = SetAsterixMemoryRequirementsRule::isMinMemoryBudgetDataset;
- break;
case DataSource.Type.FUNCTION:
dataSourceTest = SetAsterixMemoryRequirementsRule::isMinMemoryBudgetFunction;
break;
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java
index 716d36e..9517cf0 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java
@@ -329,16 +329,18 @@
JobSpecification spec = compiler.createJob(ccAppContext, jobEventListenerFactory);
if (isQuery) {
- if (requestParameters == null || !requestParameters.isSkipAdmissionPolicy()) {
- // Sets a required capacity, only for read-only queries.
- // DDLs and DMLs are considered not that frequent.
- // limit the computation locations to the locations that will be used in the query
- final INodeJobTracker nodeJobTracker = ccAppContext.getNodeJobTracker();
- final AlgebricksAbsolutePartitionConstraint jobLocations =
- getJobLocations(spec, nodeJobTracker, computationLocations);
- final IClusterCapacity jobRequiredCapacity =
- ResourceUtils.getRequiredCapacity(plan, jobLocations, physOptConf);
- spec.setRequiredClusterCapacity(jobRequiredCapacity);
+ if (!compiler.skipJobCapacityAssignment()) {
+ if (requestParameters == null || !requestParameters.isSkipAdmissionPolicy()) {
+ // Sets a required capacity, only for read-only queries.
+ // DDLs and DMLs are considered not that frequent.
+ // limit the computation locations to the locations that will be used in the query
+ final INodeJobTracker nodeJobTracker = ccAppContext.getNodeJobTracker();
+ final AlgebricksAbsolutePartitionConstraint jobLocations =
+ getJobLocations(spec, nodeJobTracker, computationLocations);
+ final IClusterCapacity jobRequiredCapacity =
+ ResourceUtils.getRequiredCapacity(plan, jobLocations, physOptConf);
+ spec.setRequiredClusterCapacity(jobRequiredCapacity);
+ }
}
}
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/metadata_only_01/metadata_only_01.1.regex b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/metadata_only_01/metadata_only_01.1.regex
index 7bc4c42..959bc0d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/metadata_only_01/metadata_only_01.1.regex
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/metadata_only_01/metadata_only_01.1.regex
@@ -1 +1 @@
-/memory\D+917504/
+/memory\D+0/
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/metadata_only_01/metadata_only_01.2.regex b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/metadata_only_01/metadata_only_01.2.regex
index acf8405..959bc0d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/metadata_only_01/metadata_only_01.2.regex
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/metadata_only_01/metadata_only_01.2.regex
@@ -1 +1 @@
-/memory\D+1146880/
+/memory\D+0/
diff --git a/asterixdb/pom.xml b/asterixdb/pom.xml
index e31b4ac..3ca72c7 100644
--- a/asterixdb/pom.xml
+++ b/asterixdb/pom.xml
@@ -46,7 +46,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<file.encoding>UTF-8</file.encoding>
<jvm.extraargs />
- <release.jdk.version>11</release.jdk.version>
+ <maven.compiler.release>11</maven.compiler.release>
<javac.xlint.value>all</javac.xlint.value>
<source-format.goal>format</source-format.goal>
<source-format.skip>false</source-format.skip>
@@ -229,7 +229,6 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <release>${release.jdk.version}</release>
<compilerArgument>-Xlint:${javac.xlint.value}</compilerArgument>
</configuration>
</plugin>
@@ -255,7 +254,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
- <version>3.0.0</version>
+ <version>3.3.1</version>
<executions>
<execution>
<id>verify-style</id>
@@ -340,7 +339,7 @@
<version>[3.3.9,)</version>
</requireMavenVersion>
<requireJavaVersion>
- <version>[${release.jdk.version},)</version>
+ <version>[${maven.compiler.release},)</version>
</requireJavaVersion>
</rules>
</configuration>
@@ -661,7 +660,14 @@
<plugin>
<groupId>net.revelc.code</groupId>
<artifactId>impsort-maven-plugin</artifactId>
- <version>1.2.0</version>
+ <version>1.9.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.github.javaparser</groupId>
+ <artifactId>javaparser-core</artifactId>
+ <version>3.25.5</version>
+ </dependency>
+ </dependencies>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
diff --git a/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/HeuristicCompilerFactoryBuilder.java b/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/HeuristicCompilerFactoryBuilder.java
index e35a539..85910aa 100644
--- a/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/HeuristicCompilerFactoryBuilder.java
+++ b/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/HeuristicCompilerFactoryBuilder.java
@@ -170,5 +170,10 @@
PlanCompiler pc = factory.createPlanCompiler(oc, appContext, writerFactory);
return pc.compilePlan(plan, jobEventListenerFactory);
}
+
+ @Override
+ public boolean skipJobCapacityAssignment() {
+ return oc.skipJobCapacityAssignment();
+ }
}
}
diff --git a/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/ICompiler.java b/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/ICompiler.java
index 7dac3eb..0f5798e 100644
--- a/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/ICompiler.java
+++ b/hyracks-fullstack/algebricks/algebricks-compiler/src/main/java/org/apache/hyracks/algebricks/compiler/api/ICompiler.java
@@ -27,4 +27,6 @@
public JobSpecification createJob(Object appContext, IJobletEventListenerFactory jobEventListenerFactory)
throws AlgebricksException;
+
+ boolean skipJobCapacityAssignment();
}
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/IOptimizationContext.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/IOptimizationContext.java
index 69ec210..10b0451 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/IOptimizationContext.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/IOptimizationContext.java
@@ -100,4 +100,8 @@
Object getCompilerFactory();
IOptimizationContextFactory getOptimizationContextFactory();
+
+ default boolean skipJobCapacityAssignment() {
+ return false;
+ }
}
diff --git a/hyracks-fullstack/pom.xml b/hyracks-fullstack/pom.xml
index 83daeda..a188ff0 100644
--- a/hyracks-fullstack/pom.xml
+++ b/hyracks-fullstack/pom.xml
@@ -49,7 +49,7 @@
<root.dir>${basedir}</root.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<file.encoding>UTF-8</file.encoding>
- <release.jdk.version>11</release.jdk.version>
+ <maven.compiler.release>11</maven.compiler.release>
<javac.xlint.value>all</javac.xlint.value>
<jvm.extraargs />
<sonar.jacoco.reportPath>${env.PWD}/target/jacoco-merged.exec</sonar.jacoco.reportPath>
@@ -576,7 +576,6 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <release>${release.jdk.version}</release>
<compilerArgument>-Xlint:${javac.xlint.value}</compilerArgument>
</configuration>
</plugin>
@@ -602,7 +601,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
- <version>3.0.0</version>
+ <version>3.3.1</version>
<executions>
<execution>
<id>verify-style</id>
@@ -686,7 +685,7 @@
<version>[3.3.9,)</version>
</requireMavenVersion>
<requireJavaVersion>
- <version>[${release.jdk.version},)</version>
+ <version>[${maven.compiler.release},)</version>
</requireJavaVersion>
</rules>
</configuration>
@@ -771,7 +770,14 @@
<plugin>
<groupId>net.revelc.code</groupId>
<artifactId>impsort-maven-plugin</artifactId>
- <version>1.2.0</version>
+ <version>1.9.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.github.javaparser</groupId>
+ <artifactId>javaparser-core</artifactId>
+ <version>3.25.5</version>
+ </dependency>
+ </dependencies>
</plugin>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
<plugin>