summaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-09-19 13:55:55 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2022-09-19 14:07:37 +0200
commit7d9ef2e10605f4af700a37a5c79a0a789fac527d (patch)
tree7f99d8adc579cc51cca5bd8160d786320a054b97 /container-core
parent2eeb7b8098d64290f3c08469457eaa76dd1bef05 (diff)
Control whether to report coverage based on active or target active documents.
Diffstat (limited to 'container-core')
-rw-r--r--container-core/abi-spec.json2
-rw-r--r--container-core/src/main/java/com/yahoo/container/handler/Coverage.java25
-rw-r--r--container-core/src/main/java/com/yahoo/container/logging/Coverage.java12
-rw-r--r--container-core/src/main/java/com/yahoo/container/logging/HitCounts.java5
4 files changed, 27 insertions, 17 deletions
diff --git a/container-core/abi-spec.json b/container-core/abi-spec.json
index 6e4fc74fdc6..e39391fa4a3 100644
--- a/container-core/abi-spec.json
+++ b/container-core/abi-spec.json
@@ -200,7 +200,6 @@
"public"
],
"methods": [
- "protected void <init>()",
"protected void <init>(long, long, int, int)",
"public void <init>(long, int, boolean)",
"protected void <init>(long, int, boolean, int)",
@@ -220,6 +219,7 @@
"public int getFullResultSets()",
"public int getResultSets()",
"public int getResultPercentage()",
+ "public com.yahoo.container.handler.Coverage useTargetActiveForCoverageComputation(boolean)",
"public com.yahoo.container.logging.Coverage toLoggingCoverage()"
],
"fields": [
diff --git a/container-core/src/main/java/com/yahoo/container/handler/Coverage.java b/container-core/src/main/java/com/yahoo/container/handler/Coverage.java
index 3f8d085af9e..fdcd225ddf5 100644
--- a/container-core/src/main/java/com/yahoo/container/handler/Coverage.java
+++ b/container-core/src/main/java/com/yahoo/container/handler/Coverage.java
@@ -1,6 +1,8 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.container.handler;
+import com.yahoo.api.annotations.Beta;
+
/**
* The coverage report for a result set.
*
@@ -9,6 +11,7 @@ package com.yahoo.container.handler;
*/
public class Coverage {
+ private boolean useTargetActiveForCoverageComputation = false;
protected long docs;
protected long active;
protected long targetActive;
@@ -29,11 +32,6 @@ public class Coverage {
public final static int DEGRADED_BY_TIMEOUT = 2;
public final static int DEGRADED_BY_ADAPTIVE_TIMEOUT = 4;
- /**
- * Build an invalid instance to initiate manually.
- */
- protected Coverage() { }
-
protected Coverage(long docs, long active, int nodes, int resultSets) {
this(docs, active, nodes, resultSets, FullCoverageDefinition.DOCUMENT_COUNT);
}
@@ -164,17 +162,28 @@ public class Coverage {
if (getResultSets() == 0) {
return 0;
}
- if (docs < active) {
- return (int) Math.round(docs * 100.0d / active);
+ long total = useTargetActiveForCoverageComputation ? targetActive : active;
+ if (docs < total) {
+ return (int) Math.round(docs * 100.0d / total);
}
return getFullResultSets() * 100 / getResultSets();
}
+ /**
+ * Decides whether active or target active shall be used for coverage computation.
+ * DO NOT USE - This is only for temporary internal use.
+ */
+ @Beta
+ public Coverage useTargetActiveForCoverageComputation(boolean value) {
+ useTargetActiveForCoverageComputation = value;
+ return this;
+ }
+
public com.yahoo.container.logging.Coverage toLoggingCoverage() {
int degradation = com.yahoo.container.logging.Coverage.toDegradation(isDegradedByMatchPhase(),
isDegradedByTimeout(),
isDegradedByAdapativeTimeout());
- return new com.yahoo.container.logging.Coverage(getDocs(), getActive(), getTargetActive(), degradation);
+ return new com.yahoo.container.logging.Coverage(getDocs(), getActive(), getTargetActive(), degradation, useTargetActiveForCoverageComputation);
}
}
diff --git a/container-core/src/main/java/com/yahoo/container/logging/Coverage.java b/container-core/src/main/java/com/yahoo/container/logging/Coverage.java
index 98d685393dc..c016a203256 100644
--- a/container-core/src/main/java/com/yahoo/container/logging/Coverage.java
+++ b/container-core/src/main/java/com/yahoo/container/logging/Coverage.java
@@ -9,14 +9,19 @@ public class Coverage {
private final long active;
private final long targetActive;
private final int degradedReason;
+ private final boolean useTargetActiveForCoverageComputation;
private final static int DEGRADED_BY_MATCH_PHASE = 1;
private final static int DEGRADED_BY_TIMEOUT = 2;
private final static int DEGRADED_BY_ADAPTIVE_TIMEOUT = 4;
- public Coverage(long docs, long active, long targetActive, int degradedReason) {
+ public Coverage(long docs, long active, long targetActive, int degradedReason, boolean useTargetActiveForCoverageComputation) {
this.docs = docs;
this.active = active;
this.targetActive = targetActive;
this.degradedReason = degradedReason;
+ this.useTargetActiveForCoverageComputation = useTargetActiveForCoverageComputation;
+ }
+ Coverage(long docs, long active, long targetActive, int degradedReason) {
+ this(docs, active, targetActive, degradedReason, true);
}
public long getDocs() {
@@ -55,8 +60,9 @@ public class Coverage {
* about had.
*/
public int getResultPercentage() {
- if (docs < active) {
- return (int) Math.round(docs * 100.0d / active);
+ long total = useTargetActiveForCoverageComputation ? targetActive : active;
+ if (docs < total) {
+ return (int) Math.round(docs * 100.0d / total);
}
return 100;
}
diff --git a/container-core/src/main/java/com/yahoo/container/logging/HitCounts.java b/container-core/src/main/java/com/yahoo/container/logging/HitCounts.java
index c76382de584..b9f14be3ea6 100644
--- a/container-core/src/main/java/com/yahoo/container/logging/HitCounts.java
+++ b/container-core/src/main/java/com/yahoo/container/logging/HitCounts.java
@@ -18,11 +18,6 @@ public class HitCounts {
private final int requestedOffset;
private final Coverage coverage;
- HitCounts(int retrievedHits, int summaryCount, long totalHitCount, int requestedHits, int requestedOffset) {
- this(retrievedHits, summaryCount, totalHitCount, requestedHits, requestedOffset,
- new Coverage(1,1,1,0));
- }
-
public HitCounts(int retrievedHits, int summaryCount, long totalHitCount,
int requestedHits, int requestedOffset, Coverage coverage)
{