Skip to content

Commit 34e0c52

Browse files
committed
GH-5691 CLI for running and storing query explanations
1 parent 92a7328 commit 34e0c52

3 files changed

Lines changed: 20 additions & 6 deletions

File tree

core/common/iterator/src/main/java/org/eclipse/rdf4j/common/iteration/LookAheadIteration.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ public final boolean hasNext() {
5454
return false;
5555
}
5656

57+
if(Thread.currentThread().isInterrupted()) {
58+
log.debug("Thread {} is interrupted, closing iteration", Thread.currentThread().getName());
59+
close();
60+
return false;
61+
}
62+
5763
try {
5864
return lookAhead() != null;
5965
} catch (NoSuchElementException logged) {

core/sail/lmdb/src/test/java/org/eclipse/rdf4j/sail/lmdb/benchmark/ThemeQueryBenchmark.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@
5151
import org.openjdk.jmh.runner.options.OptionsBuilder;
5252

5353
@State(Scope.Benchmark)
54-
@Warmup(iterations = 2, batchSize = 1, timeUnit = TimeUnit.SECONDS, time = 3)
54+
@Warmup(iterations = 1, batchSize = 1, timeUnit = TimeUnit.SECONDS, time = 30)
5555
@BenchmarkMode({ Mode.AverageTime })
5656
@Fork(value = 1, jvmArgs = { "-Xms32G", "-Xmx32G" })
57-
@Measurement(iterations = 2, batchSize = 1, timeUnit = TimeUnit.MILLISECONDS, time = 100)
57+
@Measurement(iterations = 1, batchSize = 1, timeUnit = TimeUnit.SECONDS, time = 10)
5858
@OutputTimeUnit(TimeUnit.MILLISECONDS)
5959
public class ThemeQueryBenchmark {
6060

testsuites/benchmark/src/main/java/org/eclipse/rdf4j/benchmark/plan/QueryPlanSnapshotCli.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.eclipse.rdf4j.benchmark.common.plan.QueryPlanSnapshot;
3636
import org.eclipse.rdf4j.benchmark.rio.util.ThemeDataSetGenerator.Theme;
3737
import org.eclipse.rdf4j.common.annotation.Experimental;
38+
import org.eclipse.rdf4j.query.QueryInterruptedException;
3839
import org.eclipse.rdf4j.query.TupleQuery;
3940
import org.eclipse.rdf4j.queryrender.sparql.TupleExprIRRenderer;
4041
import org.eclipse.rdf4j.repository.sail.SailRepositoryConnection;
@@ -1016,10 +1017,17 @@ private QueryExecutionVerification verifyRepeatedExecution(SailRepositoryConnect
10161017
}
10171018

10181019
long startedAt = System.nanoTime();
1019-
long currentResultCount = prepareTupleQuery(connection, queryText, queryTimeoutSeconds)
1020-
.evaluate()
1021-
.stream()
1022-
.count();
1020+
long currentResultCount;
1021+
try {
1022+
currentResultCount = prepareTupleQuery(connection, queryText, queryTimeoutSeconds)
1023+
.evaluate()
1024+
.stream()
1025+
.count();
1026+
}catch (QueryInterruptedException interrupted) {
1027+
softLimitReached = true;
1028+
break;
1029+
}
1030+
10231031
long runNanos = Math.max(1L, System.nanoTime() - startedAt);
10241032
elapsedNanos += runNanos;
10251033
runs++;

0 commit comments

Comments
 (0)