Skip to content

Intra-segment search for histogram and range aggs - #22531

Open
prudhvigodithi wants to merge 11 commits into
opensearch-project:mainfrom
prudhvigodithi:intra-agg-phase1
Open

Intra-segment search for histogram and range aggs#22531
prudhvigodithi wants to merge 11 commits into
opensearch-project:mainfrom
prudhvigodithi:intra-agg-phase1

Conversation

@prudhvigodithi

@prudhvigodithi prudhvigodithi commented Jul 21, 2026

Copy link
Copy Markdown
Member

Description

PENDING: Adding of tests

Intra-segment search for filter-rewrite aggregations. The four aggregation types opted in:

  • date_histogram
  • auto_date_histogram
  • histogram (numeric)
  • range

What this PR does. It makes the filter-rewrite family intra-segment-capable across three cases, each handled by one of two mechanisms:

  • With a sub-aggregation → partition-aware collection: The point-tree traversal still runs per partition (it walks the value-ordered tree, which is not doc-id-partitionable), but the SubAggRangeCollector is made partition-aware: it clamps the docs it records to the partition's [minDocId, maxDocId), so each partition sub-aggregates only its own docs and the partitions sum correctly. This fixes Histogram optimizations should work with Intra segment search #18016 for the sub-agg path and delivers the parallelism win (the expensive per-doc sub-agg work is split across partitions; the cheaper tree walk is repeated).
  • No sub-aggregation, and the fast path would NOT apply → partition the fallback. When we can determine upfront (request-level, before touching any segment) that tryOptimize will decline — non-UTC rounding, script/missing value, non-indexed field, overlapping ranges, or nested under a parent bucket agg — the aggregation runs an O(docs) doc-by-doc scan, which is naturally partition-safe (scorer-bounded) and parallelizes. So we let it partition.
  • No sub-aggregation, and the fast path WOULD apply → skip intra, stay sequential. The pointTree.size() bulk count is sub-linear (single-digit ms even on 116 M docs local big5 tests).Partitioning cannot beat it so we deliberately do not partition — the aggregation runs the fast path exactly as it does today.

Numeric histogram has no filter-rewrite path (pure doc-by-doc) and opts in unconditionally.

Results — all tests

Filter-rewrite agg + avg sub-agg, big5 1 segment (116 M)

aggregation intra OFF intra ON speedup
date_histogram + avg 6845 1506 4.5×
auto_date_histogram + avg 7083 1765 4.0×
range + avg 2363 719 3.3×
numeric histogram + avg 7410 1479 5.0×

No sub-agg — the hybrid gate (big5 1 segment)

The gate predicts upfront whether the O(1) fast path applies. When it declines → partition the O(docs) scan (win); when it applies → stay sequential (already ~ms, correctly a no-op).

aggregation fast path? condition intra OFF intra ON result
date_histogram declines non-UTC timezone 3819 780 4.9× win
auto_date_histogram declines non-UTC timezone 3979 834 4.8× win
range declines overlapping ranges 3517 747 4.7× win
date_histogram applies UTC 4 3 no-op (intra not engaged)
auto_date_histogram applies UTC 3 3 no-op (intra not engaged)
range applies non-overlapping 2 2 no-op (intra not engaged)

Same four aggs across topologies (win on skew, no-op when balanced)

aggregation skew_big (1 fat + 11 small) OFF → ON big5_4s (4 shards, balanced) OFF → ON
date_histogram + avg 2572 → 681 (3.8×) 1695 → 1622 (~1.0× no-op)
auto_date_histogram + avg 2502 → 1017 (2.5×) 1668 → 1615 (~1.0× no-op)
range + avg 880 → 272 (3.2×) 680 → 673 (~1.0× no-op)
numeric histogram + avg 2697 → 573 (4.7×) 1968 → 1784 (~1.0× no-op)

Real big5 OSB workload queries, big5 1 segment

OSB query shape intra OFF intra ON result
range-with-metrics range → sum/min/avg/max/stats 17763 5013 3.5×
range-auto-date-histo-with-metrics range → auto_date → metrics 21701 5331 4.1×
range-auto-date-histo range → auto_date (nested, no leaf metric) 6241 1671 3.7×
date_histogram_hourly_agg date_histogram, no sub-agg, UTC 9 5 no-op (fast path → intra not engaged)
range-agg-1 range, no sub-agg, non-overlapping 1 1 no-op (fast path → intra not engaged)

Related Issues

Check List

  • Functionality includes testing.
  • API changes companion pull request created, if applicable.
  • Public documentation issue/PR created, if applicable.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

date_histogram, auto_date_histogram, and range share the filter-rewrite
optimization (FilterRewriteOptimizationContext#tryOptimize -> point-tree
traversal). Under intra-segment search a segment is split into doc-id-range
partitions collected on different threads, so getLeafCollector (hence
tryOptimize) runs once per partition. The point-tree traversal counts over
the whole segment, so running it per partition multiplied bucket counts
(see opensearch-project#18016).

Fix:
- No sub-agg: keep the O(1) whole-cell bulk count (pointTree.size()) but do
  not partition it (it cannot be restricted to a doc-id range). These aggs
  opt into intra only when a sub-aggregation is present
  (factories.countAggregators() > 0), so plain histograms/ranges stay on the
  sequential fast path and never duplicate.
- With sub-agg: make the traversal partition-aware. The partition's
  [minDocId, maxDocId), known in ContextIndexSearcher#searchLeaf, is carried
  to the collection layer via a thread-scoped value on SearchContext
  (withPartitionDocIdRange returning a Releasable, used with
  try-with-resources). SubAggRangeCollector clamps collectDocId/
  collectDocIdSet to that range, so each partition collects and
  sub-aggregates only its own docs and the partitions sum correctly. A
  side-channel is required because Lucene's Collector#getLeafCollector has no
  doc-bounds parameter (bounds go to the scorer; see apache/lucene#13542).

Numeric histogram uses pure doc-by-doc collection (no filter-rewrite path),
so it opts into intra unconditionally and benefits from parallel collection.

composite is intentionally not opted in: it collects through a stateful,
ordered whole-segment queue that is not partition-safe; making it intra-safe
is separate work.

Verified byte-identical bucket and sub-agg results across partition_strategy
segment/balanced/force and slice counts, with a ~2.7-3.6x speedup for
date_histogram/auto_date_histogram/range + sub-agg on large/skewed segments.

Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
@github-actions github-actions Bot added bug Something isn't working Search:Aggregations labels Jul 21, 2026
@github-actions

github-actions Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

PR Reviewer Guide 🔍

(Review updated until commit e4a2f86)

Here are some key observations to aid the review process:

🧪 PR contains tests
🔒 No security concerns identified
✅ No TODO sections
🔀 No multiple PR themes
⚡ Recommended focus areas for review

Possible NPE / IndexOutOfBounds

filterRewriteFastPathApplies(config, ranges) accesses ranges[0].getTo() without checking whether ranges is null or empty. If a caller (such as the parent-aware overload used by AbstractRangeAggregatorFactory.supportsIntraSegmentSearch) passes an empty or null ranges array, this will throw ArrayIndexOutOfBoundsException/NullPointerException instead of returning false. The previous implementation was called from canOptimize where ranges were guaranteed non-empty; the new static method may be invoked from broader contexts, so it should defensively handle empty/null input.

public static boolean filterRewriteFastPathApplies(ValuesSourceConfig config, RangeAggregator.Range[] ranges) {
    MappedFieldType fieldType = config.fieldType();
    if (fieldType == null || fieldType.isSearchable() == false || !(fieldType instanceof NumericPointEncoder)) {
        return false;
    }
    if (config.script() != null || config.missing() != null) {
        return false;
    }
    if ((config.getValuesSource() instanceof ValuesSource.Numeric.FieldData) == false) {
        return false;
    }
    // ranges are already sorted by from and then to; the fast path requires non-overlapping ranges
    double prevTo = ranges[0].getTo();
    for (int i = 1; i < ranges.length; i++) {
        if (prevTo > ranges[i].getFrom()) {
            return false;
        }
        prevTo = ranges[i].getTo();
    }
    return true;
}

@github-actions

github-actions Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

PR Code Suggestions ✨

Latest suggestions up to e4a2f86

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Guard against empty ranges array

Guard against an empty ranges array before indexing ranges[0], otherwise this static
helper will throw ArrayIndexOutOfBoundsException when callers (e.g. aggregator
factories deciding intra-segment eligibility) pass an empty range set. The original
code was safely nested inside checks that made this less likely to be reached
externally, but the new public static entry point can be invoked directly.

server/src/main/java/org/opensearch/search/aggregations/bucket/filterrewrite/RangeAggregatorBridge.java [53-73]

 public static boolean filterRewriteFastPathApplies(ValuesSourceConfig config, RangeAggregator.Range[] ranges) {
     MappedFieldType fieldType = config.fieldType();
     if (fieldType == null || fieldType.isSearchable() == false || !(fieldType instanceof NumericPointEncoder)) {
         return false;
     }
     if (config.script() != null || config.missing() != null) {
         return false;
     }
     if ((config.getValuesSource() instanceof ValuesSource.Numeric.FieldData) == false) {
+        return false;
+    }
+    if (ranges == null || ranges.length == 0) {
         return false;
     }
     // ranges are already sorted by from and then to; the fast path requires non-overlapping ranges
     double prevTo = ranges[0].getTo();
     for (int i = 1; i < ranges.length; i++) {
         if (prevTo > ranges[i].getFrom()) {
             return false;
         }
         prevTo = ranges[i].getTo();
     }
     return true;
 }
Suggestion importance[1-10]: 5

__

Why: Adding a null/empty guard for ranges is a reasonable defensive check for the new public static entry point, though in practice range aggregations require at least one range so it's unlikely to be triggered.

Low
General
Fix misleading comment about date span

The comment states data spans 50 days but base.plusDays(d) with d up to 49 keeps all
documents in January–February 2024, which spans multiple months. The nested
month/day test comment elsewhere claims "All indexed dates fall in January 2024"
which will not hold; ensure the multi-shard test data range matches its assertions
and expected bucket counts (e.g., 50 unique day buckets is fine, but any month-level
check would fail).

server/src/internalClusterTest/java/org/opensearch/search/aggregations/bucket/FilterRewriteIT.java [255-261]

 int days = 50;
-int perDay = 100; // 50 * 100 = 5000 docs
+int perDay = 100; // 50 * 100 = 5000 docs across ~2 months
 ZonedDateTime base = ZonedDateTime.of(2024, 1, 1, 0, 0, 0, 0, ZoneOffset.UTC);
 List<IndexRequestBuilder> builders = new ArrayList<>(days * perDay);
 for (int d = 0; d < days; d++) {
     ZonedDateTime time = base.plusDays(d);
     String dateTerm = DateFormatter.forPattern("yyyy-MM-dd").format(time);
Suggestion importance[1-10]: 3

__

Why: The suggestion correctly notes the 50-day span crosses into February, but the test in question (testFilterRewriteWithIntraSegmentPartitioning) only asserts on day buckets, not months, so the concern is minor and only affects a comment.

Low

Previous suggestions

Suggestions up to commit 34d9214
CategorySuggestion                                                                                                                                    Impact
Possible issue
Guard against empty ranges array

The new static predicate accesses ranges[0] without checking that ranges is non-null
or non-empty. If a range aggregator is configured with zero ranges (or ranges is
null in unusual call paths), this will throw
NullPointerException/ArrayIndexOutOfBoundsException during factory construction.
Guard the length before indexing.

server/src/main/java/org/opensearch/search/aggregations/bucket/filterrewrite/RangeAggregatorBridge.java [54-62]

 if ((config.getValuesSource() instanceof ValuesSource.Numeric.FieldData) == false) {
+    return false;
+}
+if (ranges == null || ranges.length == 0) {
     return false;
 }
 // ranges are already sorted by from and then to; the fast path requires non-overlapping ranges
 double prevTo = ranges[0].getTo();
 for (int i = 1; i < ranges.length; i++) {
     if (prevTo > ranges[i].getFrom()) {
         return false;
     }
     prevTo = ranges[i].getTo();
 }
 return true;
Suggestion importance[1-10]: 4

__

Why: Adding a null/empty guard for ranges is a minor defensive improvement; in practice range aggregators typically require at least one range, so the risk is low but the guard is reasonable.

Low
General
Assert expected count is non-null

assertEquals(expectedCount, (Long) bucket.getDocCount()) will silently produce a
misleading failure if expected.get(...) returns null (unknown bucket key), and a
null-vs-boxed-long comparison can mask a real bug. Assert expectedCount != null
first, or compare primitives explicitly to fail fast with a clearer message.

server/src/internalClusterTest/java/org/opensearch/search/aggregations/bucket/FilterRewriteIT.java [181-188]

 final Histogram histo = response.getAggregations().get("histo");
 long total = 0;
 for (Histogram.Bucket bucket : histo.getBuckets()) {
     Long expectedCount = expected.get(bucket.getKeyAsString());
-    assertEquals(expectedCount, (Long) bucket.getDocCount());
+    assertNotNull("unexpected bucket key " + bucket.getKeyAsString(), expectedCount);
+    assertEquals(expectedCount.longValue(), bucket.getDocCount());
     assertNotNull(bucket.getAggregations().get("avg_ts"));
     total += bucket.getDocCount();
 }
Suggestion importance[1-10]: 3

__

Why: Improves test diagnostics by failing fast with a clearer message if an unexpected bucket key appears; a minor test-quality improvement.

Low
Avoid caching potentially-stale intra-segment flag

intraSegmentSearchEnabled is captured once at construction time from the
SearchContext. If this flag can be toggled or re-evaluated per request/segment (as
with other dynamic cluster settings), caching it here may cause stale behavior
across requests when a context or bridge instance is reused. Confirm the flag is
stable for the lifetime of this context, or read it at tryOptimize time.

server/src/main/java/org/opensearch/search/aggregations/bucket/filterrewrite/FilterRewriteOptimizationContext.java [69-71]

 public FilterRewriteOptimizationContext(
     AggregatorBridge aggregatorBridge,
     final Object parent,
     final int subAggLength,
     SearchContext context
 ) throws IOException {
     this.aggregatorBridge = aggregatorBridge;
-    this.intraSegmentSearchEnabled = context.shouldUseIntraSegmentSearch();
+    this.searchContext = context;
     this.canOptimize = this.canOptimize(parent, subAggLength, context);
 }
Suggestion importance[1-10]: 3

__

Why: The concern is speculative — the FilterRewriteOptimizationContext is typically per-request, so caching the flag is likely safe. The suggestion only asks to verify, and the impact is limited.

Low
Suggestions up to commit 52acf52
CategorySuggestion                                                                                                                                    Impact
Possible issue
Guard against null/empty ranges array

The refactored predicate now unconditionally dereferences ranges[0], but callers
(e.g. AbstractRangeAggregatorFactory.supportsIntraSegmentSearch) may invoke this
before any ranges are validated. If ranges is null or empty, this will throw
NPE/AIOOBE instead of returning false. Add a guard for the empty/null case.

server/src/main/java/org/opensearch/search/aggregations/bucket/filterrewrite/RangeAggregatorBridge.java [43-62]

 public static boolean filterRewriteFastPathApplies(ValuesSourceConfig config, RangeAggregator.Range[] ranges) {
     MappedFieldType fieldType = config.fieldType();
     if (fieldType == null || fieldType.isSearchable() == false || !(fieldType instanceof NumericPointEncoder)) {
         return false;
     }
     if (config.script() != null || config.missing() != null) {
         return false;
     }
     if ((config.getValuesSource() instanceof ValuesSource.Numeric.FieldData) == false) {
+        return false;
+    }
+    if (ranges == null || ranges.length == 0) {
         return false;
     }
     // ranges are already sorted by from and then to; the fast path requires non-overlapping ranges
     double prevTo = ranges[0].getTo();
     for (int i = 1; i < ranges.length; i++) {
         if (prevTo > ranges[i].getFrom()) {
             return false;
         }
         prevTo = ranges[i].getTo();
     }
     return true;
 }
Suggestion importance[1-10]: 5

__

Why: Adding a null/empty guard for ranges is a reasonable defensive check since the method is now called earlier from factories, though callers likely already validate ranges. Minor robustness improvement.

Low
General
Avoid disabling fast path unnecessarily

intraSegmentSearchEnabled is captured once at construction from
context.shouldUseIntraSegmentSearch(), which is a request/context-level flag;
however, the aggregator factories rely on supportsIntraSegmentSearch() to actually
gate partitioning per aggregator. If intra-segment search is enabled globally but
this particular aggregator is not partitioned (e.g. a top-level date_histogram whose
factory returned false), disabling the fast path here needlessly regresses
performance. Consider gating on whether this specific aggregator's leaf actually
runs under a partitioned collector rather than the request-wide flag.

server/src/main/java/org/opensearch/search/aggregations/bucket/filterrewrite/FilterRewriteOptimizationContext.java [127-132]

 // Under intra-segment search the segment is partitioned and this method is called per partition.
-// The BKD point-tree traversal counts the whole segment, so running it per partition would multiply
-// counts (see #18016). Skip and fall back to the partition-safe doc-by-doc / skip-list path.
-if (intraSegmentSearchEnabled) {
+// Only skip when this aggregator is actually being collected under a partitioned scorer; otherwise
+// the fast path is still safe and preferable.
+if (intraSegmentSearchEnabled && isRunningUnderPartitionedCollector()) {
     return false;
 }
Suggestion importance[1-10]: 3

__

Why: The suggestion references a non-existent method isRunningUnderPartitionedCollector() and the PR's design intentionally uses factory-level supportsIntraSegmentSearch() to prevent partitioning when the fast path applies, so this check is redundant but not harmful; the improved_code is not directly actionable.

Low
Suggestions up to commit 6dc98cd
CategorySuggestion                                                                                                                                    Impact
Possible issue
Guard iterator advance call for correctness

DocIdSetIterator#advance(target) requires that target is greater than the current
docID; if the iterator has not been positioned yet, advance(0) may be invalid on
some implementations, and calling advance twice on the same iterator across
successive invocations could throw. Guard the advance call so it only advances when
minDocId > iter.docID(), and only when minDocId > 0 (whole-segment path).

server/src/main/java/org/opensearch/search/aggregations/bucket/filterrewrite/rangecollector/SubAggRangeCollector.java [102-105]

 // Explicitly OR iter intoBitSet to filter out deleted docs
 // Skip ahead to the partition's lower bound to avoid iterating docs owned by other partitions.
-int doc = iter.advance(minDocId);
+int doc = (minDocId > 0 && iter.docID() < minDocId) ? iter.advance(minDocId) : iter.nextDoc();
 for (; doc < maxDocId; doc = iter.nextDoc()) {
     if (isDocLive(doc)) {
         counter++;
         bitSet.set(doc);
     }
Suggestion importance[1-10]: 7

__

Why: Legitimate correctness concern: DocIdSetIterator#advance(target) requires target > current docID, and calling advance(0) on a fresh iterator may violate the contract. The guard improves robustness for the whole-segment case.

Medium
General
Avoid disabling fast path for whole-segment threads

When intraSegmentSearchEnabled is true but partitionRange == null (meaning no
partitioning is in effect on this thread — the whole segment), the fast path is
disabled entirely even though it would be safe. This regresses performance for
intra-eligible requests whose leaves happen not to be partitioned. Allow the fast
path when the partition range is absent (whole-segment execution) regardless of the
hasSubAgg flag.

server/src/main/java/org/opensearch/search/aggregations/bucket/filterrewrite/FilterRewriteOptimizationContext.java [148-151]

 int[] partitionRange = intraSegmentSearchEnabled ? subAggPartitionRange() : null;
-if (intraSegmentSearchEnabled && (hasSubAgg == false || partitionRange == null)) {
+// Only skip the fast path when we are actually running under a partition boundary and cannot restrict work
+// to it (i.e. no sub-agg path to clamp doc ids through).
+if (intraSegmentSearchEnabled && partitionRange != null && hasSubAgg == false) {
     return false;
 }
Suggestion importance[1-10]: 6

__

Why: Reasonable performance observation: when intra-segment is enabled but no partition range is set on the current thread, the fast path could safely run. However, the suggested change may conflict with the no-sub-agg path's inherent inability to be partition-aware; correctness needs careful verification.

Low
Prevent thread-local leaks across pooled threads

Using a plain ThreadLocal on a per-request SearchContext risks leaking the range
into pooled search threads if a Releasable is not closed (e.g. thrown before
try-with-resources). Consider using CloseableThreadLocal or explicitly remove()-ing
on context close to avoid retaining thread-local state across requests on reused
threads.

server/src/main/java/org/opensearch/search/internal/SearchContext.java [635]

 private final ThreadLocal<int[]> partitionDocIdRange = new ThreadLocal<>();
+// NOTE: ensure removal on SearchContext close to avoid leaks across pooled threads
Suggestion importance[1-10]: 5

__

Why: Valid concern about ThreadLocal leaks on pooled search threads, though the try-with-resources pattern in ContextIndexSearcher largely mitigates this. The suggestion is more of a defensive note than a concrete fix.

Low
Suggestions up to commit a5f51eb
CategorySuggestion                                                                                                                                    Impact
Possible issue
Avoid invalid DocIdSetIterator.advance call

DocIdSetIterator#advance requires the target to be greater than the current docID;
when minDocId is 0 and the iterator hasn't been positioned yet (docID == -1),
advance(0) is still valid, but if this method is ever re-entered or the iterator has
already been advanced past 0, this call can throw. Guard by advancing only when
minDocId > iter.docID(), otherwise call nextDoc().

server/src/main/java/org/opensearch/search/aggregations/bucket/filterrewrite/rangecollector/SubAggRangeCollector.java [100-108]

 @Override
 public void collectDocIdSet(DocIdSetIterator iter) throws IOException {
     // Explicitly OR iter intoBitSet to filter out deleted docs
     // Skip ahead to the partition's lower bound to avoid iterating docs owned by other partitions.
-    int doc = iter.advance(minDocId);
+    int doc = (minDocId > iter.docID()) ? iter.advance(minDocId) : iter.nextDoc();
     for (; doc < maxDocId; doc = iter.nextDoc()) {
         if (isDocLive(doc)) {
             counter++;
             bitSet.set(doc);
         }
Suggestion importance[1-10]: 6

__

Why: Valid concern: DocIdSetIterator#advance requires target > current docID. When minDocId is 0 and the iterator is at position -1, advance(0) is invalid per contract. The guard makes the call safe.

Low
Guard against empty ranges array

filterRewriteFastPathApplies is now called from aggregator factories upfront,
potentially before ranges have been validated to be non-empty. If ranges has length
0, ranges[0].getTo() will throw ArrayIndexOutOfBoundsException. Add an empty-array
guard to make this pure predicate safe to call in all contexts.

server/src/main/java/org/opensearch/search/aggregations/bucket/filterrewrite/RangeAggregatorBridge.java [55-61]

 // ranges are already sorted by from and then to; the fast path requires non-overlapping ranges
+if (ranges.length == 0) {
+    return false;
+}
 double prevTo = ranges[0].getTo();
 for (int i = 1; i < ranges.length; i++) {
     if (prevTo > ranges[i].getFrom()) {
         return false;
     }
     prevTo = ranges[i].getTo();
 }
 return true;
Suggestion importance[1-10]: 5

__

Why: Valid defensive check: if ranges is empty, ranges[0].getTo() would throw AIOOBE. However, callers typically validate non-empty ranges, so likelihood is low but the guard is inexpensive.

Low
General
Prevent ThreadLocal leak across pooled threads

A raw ThreadLocal on a per-request SearchContext will retain the last set value on
every worker thread across requests if withPartitionDocIdRange is not always closed
(e.g. on an unusual code path bypassing the try-with-resources). Since SearchContext
is Releasable, consider clearing this ThreadLocal on context close, or use
ThreadLocal.withInitial(() -> null) and ensure removal on the outermost close to
prevent thread-pool leaks.

server/src/main/java/org/opensearch/search/internal/SearchContext.java [635]

 private final ThreadLocal<int[]> partitionDocIdRange = new ThreadLocal<>();
+// NOTE: ensure this is cleared on SearchContext close to avoid leaking state across pooled threads.
Suggestion importance[1-10]: 4

__

Why: Reasonable concern about ThreadLocal cleanup on pooled threads, but the try-with-resources idiom already ensures cleanup on normal paths. The suggested improved_code only adds a comment, not an actual fix.

Low
Suggestions up to commit 2363127
CategorySuggestion                                                                                                                                    Impact
Possible issue
Avoid invalid backward advance on iterator

DocIdSetIterator.advance(target) requires target to be strictly greater than the
current doc id, and calling it on an iterator whose current position is already past
minDocId (e.g. after a previous partial iteration) can throw. Guard the advance so
it only moves forward when needed, e.g. int doc = iter.docID(); if (doc < minDocId)
doc = iter.advance(minDocId);. This preserves the partition-clamp intent without
violating the iterator contract.

server/src/main/java/org/opensearch/search/aggregations/bucket/filterrewrite/rangecollector/SubAggRangeCollector.java [100-108]

 @Override
 public void collectDocIdSet(DocIdSetIterator iter) throws IOException {
     // Explicitly OR iter intoBitSet to filter out deleted docs
     // Skip ahead to the partition's lower bound to avoid iterating docs owned by other partitions.
-    int doc = iter.advance(minDocId);
+    int doc = iter.docID();
+    if (doc < minDocId) {
+        doc = iter.advance(minDocId);
+    }
     for (; doc < maxDocId; doc = iter.nextDoc()) {
         if (isDocLive(doc)) {
             counter++;
             bitSet.set(doc);
         }
Suggestion importance[1-10]: 6

__

Why: Valid concern: DocIdSetIterator.advance(target) requires target > current docID. On a fresh iterator (docID=-1) advancing to minDocId=0 would fail, and defensive handling improves robustness, though in typical usage iterators start unpositioned.

Low
General
Prevent ThreadLocal leakage across requests

A raw ThreadLocal on a request-scoped SearchContext retains its int[] value on any
worker thread that runs a partition and never clears it if the try-with-resources
path is bypassed, causing cross-request leakage on pooled search threads. Use a
value that is always cleared (the try-with-resources already does this) and/or
prefer a stack (e.g. ArrayDeque) so nested scopes and abnormal completion are
handled robustly; at minimum ensure the map entry is removed on the outermost close.

server/src/main/java/org/opensearch/search/internal/SearchContext.java [635]

 private final ThreadLocal<int[]> partitionDocIdRange = new ThreadLocal<>();
+// Note: entries must always be removed on outermost scope close to avoid leaking across pooled search threads.
Suggestion importance[1-10]: 4

__

Why: The suggestion raises a valid concern about ThreadLocal leakage on pooled search threads, but the improved_code merely adds a comment without any functional change, providing little concrete improvement.

Low
Clamp partition maxDocId at construction

Passing Integer.MAX_VALUE for maxDocId is fine because SubAggRangeCollector clamps
it to leafCtx.reader().maxDoc(), but this coupling is fragile. Clamp here as well
(or document that the constructor is responsible), so future callers of
SubAggCollectorParam don't silently propagate an out-of-range upper bound that could
cause off-by-one issues in other collectors.

server/src/main/java/org/opensearch/search/aggregations/bucket/filterrewrite/FilterRewriteOptimizationContext.java [185-187]

 int minDocId = partitionRange != null ? partitionRange[0] : 0;
-int maxDocId = partitionRange != null ? partitionRange[1] : Integer.MAX_VALUE;
+int maxDocId = partitionRange != null ? Math.min(partitionRange[1], leafCtx.reader().maxDoc()) : leafCtx.reader().maxDoc();
 subAggCollectorParam = new SubAggCollectorParam(collectableSubAggregators, leafCtx, minDocId, maxDocId);
Suggestion importance[1-10]: 3

__

Why: Minor defensive improvement; the clamping is already done in SubAggRangeCollector, so this is a redundancy/style improvement rather than a correctness fix.

Low

@github-actions github-actions Bot added the feature New feature or request label Jul 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

❌ Gradle check result for 32737dd: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
@github-actions

Copy link
Copy Markdown
Contributor

Persistent review updated to latest commit 9c60093

@github-actions

Copy link
Copy Markdown
Contributor

✅ Gradle check result for 9c60093: SUCCESS

@codecov

codecov Bot commented Jul 22, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 80.64516% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 73.47%. Comparing base (993f75a) to head (e4a2f86).
⚠️ Report is 47 commits behind head on main.

Files with missing lines Patch % Lines
...ns/bucket/filterrewrite/RangeAggregatorBridge.java 77.77% 1 Missing and 3 partials ⚠️
...t/filterrewrite/DateHistogramAggregatorBridge.java 77.77% 0 Missing and 2 partials ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main   #22531      +/-   ##
============================================
- Coverage     73.50%   73.47%   -0.04%     
+ Complexity    76507    76496      -11     
============================================
  Files          6104     6104              
  Lines        346618   346628      +10     
  Branches      49888    49886       -2     
============================================
- Hits         254793   254675     -118     
- Misses        71541    71648     +107     
- Partials      20284    20305      +21     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@prudhvigodithi

Copy link
Copy Markdown
Member Author

@jainankitk can you take a look at this PR?

Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
@prudhvigodithi prudhvigodithi changed the title [Draft] Intra-segment search for histogram and range aggs Intra-segment search for histogram and range aggs Jul 22, 2026
@prudhvigodithi
prudhvigodithi marked this pull request as ready for review July 22, 2026 20:54
@prudhvigodithi

Copy link
Copy Markdown
Member Author

The one case with mixed results: sub-agg + fast-path-applies + many buckets (≳1700)

Coming from the above comment #22531 (comment) the mixed results are explained by which collection path runs, not segment size. Both datasets are UTC so the filter-rewrite fast path is eligible, but at runtime a per-segment check against search.max_aggregation_rewrite_filters (default 3000) decides whether BKD actually runs: it builds one range-filter per bucket and declines if that exceeds 3000, falling back to the skip-list / doc-by-doc path.

  • http_logs: each segment spans a wide time range (> 3000 range-filters even at 1m), so BKD declines → skip-list, which is doc-ID-ordered and partitions safely → large improvement (−33 to −54%).
  • big5: its segments span narrow enough windows (< 3000 range-filters), so BKD runs. The BKD point-tree walk is value-ordered / not partition-aware, so under intra it is duplicated per partition → regression.

From profile and debug logs:

big5
  ┌────────────────┬──────────────────────────┬───────────────────────────┬───────────────────────────┐
  │ buckets (span) │ optimized_segments (BKD) │ skip_list_collectors_used │           mix?            │
  ├────────────────┼──────────────────────────┼───────────────────────────┼───────────────────────────┤
  │ 17,400 (1m)    │ 3                        │ 0                         │ pure BKD                  │
  ├────────────────┼──────────────────────────┼───────────────────────────┼───────────────────────────┤
  │ 34,800 (30s)   │ 3                        │ 0                         │ pure BKD                  │
  ├────────────────┼──────────────────────────┼───────────────────────────┼───────────────────────────┤
  │ 104,400 (10s)  │ 1                        │ 2                         │ MIX (1 BKD + 2 skip-list) │
  └────────────────┴──────────────────────────┴───────────────────────────┴───────────────────────────┘


http_logs
  ┌─────────────────────────┬──────────────────────────┬───────────────────────────┬────────────────┐
  │ span-buckets (interval) │ optimized_segments (BKD) │ skip_list_collectors_used │      mix?      │
  ├─────────────────────────┼──────────────────────────┼───────────────────────────┼────────────────┤
  │ 10,081 (1m)             │ 0 (absent)               │ 4                         │ pure skip-list │
  ├─────────────────────────┼──────────────────────────┼───────────────────────────┼────────────────┤
  │ 20,161 (30s)            │ 0 (absent)               │ 4                         │ pure skip-list │
  ├─────────────────────────┼──────────────────────────┼───────────────────────────┼────────────────┤
  │ 60,481 (10s)            │ 0 (absent)               │ 4                         │ pure skip-list │
  └─────────────────────────┴──────────────────────────┴───────────────────────────┴────────────────┘

For the scope of this PR for filter-rewrite aggregations (date_histogram, auto_date_histogram, range/date_range), this PR enables intra-segment partitioning only when the fast path declines. In that case collection falls back to the doc-ID-ordered skip-list / doc-by-doc path, which partitions safely and parallelizes cleanly — the measured wins (−7% to −54%). When the fast path applies, we keep the query sequential: its BKD point-tree walk is value-ordered / not partition-aware, so partitioning would duplicate the walk per partition and regress.

Numeric histogram has no filter-rewrite path and always partitions which a clean win.

Deferred to follow-up PRs

  • No-sub-agg + fast path applies but runs skip-list. The gate predicts "fast path applies → BKD → stay sequential," but at runtime the search.max_aggregation_rewrite_filters (3000) cap can make BKD decline per-segment → skip-list runs, which would benefit from partitioning.
  • Sub-agg + fast path applies but declines per-segment. Same 3000-cap: whether a segment uses BKD or skip-list is a per-segment runtime decision, not knowable at the request-level gate (e.g. http_logs wide segments decline BKD → skip-list → would win; big5's narrow segments run BKD). The gate can't tell these apart, so it conservatively skips intra for the whole quadrant.
  • Can't just skip BKD under intra and use skip-list as for low bucket counts BKD beats skip-list. Even partitioned, BKD is faster than skip-list when the walk is cheap (few buckets). So the fix isn't path-avoidance; it's making the BKD walk run once per segment while parallelizing the sub-agg collection across partitions (share the BKD traverse output).

In short: this PR ships the unambiguous, no-regression wins (fast-path-declines + numeric histogram); the fast-path-applies wins need a per-segment runtime mechanism and are tracked as follow-ups.

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

❌ Gradle check result for 6dc98cd: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Persistent review updated to latest commit 52acf52

Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Persistent review updated to latest commit 34d9214

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

✅ Gradle check result for 34d9214: SUCCESS

@prudhvigodithi

prudhvigodithi commented Aug 5, 2026

Copy link
Copy Markdown
Member Author

Intra-segment improvement queries (with full query shapes)

  • big5: 1 shard, 116M docs, 13 segments (two ~24M, one ~23M, one ~16M, plus smaller).
  • http_logs logs-241998: 1 shard, 181M docs, 19 segments — two large ~65M-doc segments
    (~5.1 GB each) plus a ~24M and a ~15M segment and smaller ones.

Top-level filter-rewrite aggs, mode=auto, slice=8, balanced

# Query Why intra-eligible big5 (116M, 13 seg) http_logs logs-241998 (181M)
1 numeric histogram + avg numeric histogram (no BKD fast path) 1758→1480 (−15.8%) 6047→2833 (−53.2%)
2 numeric histogram (no sub-agg) numeric histogram 886→743 (−16.1%) 3371→1561 (−53.7%)
3 date_histogram + avg, non-UTC, 1m fast path declines (non-UTC) 2366→1887 (−20.2%) 5519→2831 (−48.7%)
4 date_histogram + avg, non-UTC, 1h fast path declines (non-UTC) 1983→1674 (−15.6%) 4806→2866 (−40.4%)
5 date_histogram + stats, non-UTC, 1m fast path declines (non-UTC) 2272→1860 (−18.1%) 5341→2805 (−47.5%)
6 date_histogram (no sub-agg), non-UTC, 1m fast path declines (non-UTC) 1265→1012 (−20.0%) 3004→1548 (−48.5%)
7 auto_date_histogram + avg, non-UTC fast path declines (non-UTC) 3210→2894 (−9.8%) 6784→4517 (−33.4%)
8 range + stats, overlapping ranges fast path declines (overlapping) 1644→1460 (−11.2%) 5223→3177 (−39.2%)
9 date_histogram + avg, scripted fast path declines (script) 3152→2705 (−14.2%) 6934→4321 (−37.7%)

http_logs logs-* (all 8 shards, ~247M docs, 93 segments),

# Query http_logs logs-* (8 shards, 93 seg)
1 numeric histogram + avg 6219→3687 (−40.7%)
2 numeric histogram (no sub-agg) 3667→1943 (−47.0%)
3 date_histogram + avg, non-UTC, 1m 6016→4000 (−33.5%)
4 date_histogram + avg, non-UTC, 1h 5405→3801 (−29.7%)
5 date_histogram + stats, non-UTC, 1m 6457→3934 (−39.1%)
6 date_histogram (no sub-agg), non-UTC, 1m 3575→2196 (−38.6%)
7 auto_date_histogram + avg, non-UTC 8257→5946 (−28.0%)
8 range + stats, overlapping ranges 6304→4332 (−31.3%)
9 date_histogram + avg, scripted 7998→6246 (−21.9%)

date_histogram / auto_date as a sub-agg (nested under an intra-eligible parent)

Query big5 (116M, 13 seg) http_logs logs-241998 (181M)
numeric histogram + date_histogram sub-agg (calendar day) 1954→1611 (−17.6%) 4805→2940 (−38.8%)
numeric histogram + auto_date_histogram sub-agg (12 buckets) 2548→2080 (−18.4%) 5568→3223 (−42.1%)

Slice-count sensitivity (mode=auto, big5, main matrix)

big5 has 13 segments. The intra win depends on max_slice_count relative to segment count: with too few slices, work distributes at segment granularity (segments rarely split). With enough slices, individual large segments get partitioned and the win appears.

Query big5 slice=4 (balanced) big5 slice=4 (force) big5 slice=8 (balanced)
numeric histogram + avg 1620→1623 (+0.2%) 1871→1886 (+0.8%) 1758→1480 (−15.8%)
numeric histogram (no sub-agg) 871→858 (−1.5%) 964→936 (−2.9%) 886→743 (−16.1%)
date_histogram + avg, non-UTC, 1m 2534→2523 (−0.4%) 2605→2630 (+1.0%) 2366→1887 (−20.2%)
date_histogram + avg, non-UTC, 1h 2003→1998 (−0.2%) 2030→2010 (−1.0%) 1983→1674 (−15.6%)
date_histogram + stats, non-UTC, 1m 2366→2402 (+1.5%) 2442→2428 (−0.6%) 2272→1860 (−18.1%)
date_histogram (no sub-agg), non-UTC, 1m 1379→1334 (−3.3%) 1383→1362 (−1.5%) 1265→1012 (−20.0%)
auto_date_histogram + avg, non-UTC 3001→3023 (+0.7%) 3037→2970 (−2.2%) 3210→2894 (−9.8%)
range + stats, overlapping ranges 1634→1616 (−1.1%) 1651→1613 (−2.3%) 1644→1460 (−11.2%)
date_histogram + avg, scripted 3187→3163 (−0.8%) 3128→3131 (+0.1%) 3152→2705 (−14.2%)

Low bucket count

# Query top-level buckets (big5/httplogs) big5 (116M) http_logs logs-241998 (181M)
1 date_histogram YEAR, non-UTC + avg 1 1354→1255 (−7.3%) 3034→1887 (−37.8%)
2 date_histogram MONTH, non-UTC + stats 1 1344→1290 (−4.0%) 2895→1837 (−36.5%)
3 date_histogram DAY, non-UTC + avg 13 / 8 1472→1370 (−6.9%) 5051→3281 (−35.0%)
4 numeric histogram WIDE interval + avg 5 / 3 1763→1562 (−11.4%) 4052→2372 (−41.5%)
5 range 3 wide non-overlapping + avg 3 481→492 (+2.3%) 1250→1246 (−0.3%)
6 range 3 wide overlapping + avg 3 1994→1860 (−6.7%) 4137→2638 (−36.2%)
7 auto_date_histogram buckets=3, non-UTC + avg 2 2925→2320 (−20.7%) 6739→4462 (−33.8%)
8 date_histogram DAY, non-UTC + cardinality sub 13 / 8 1187→1127 (−5.1%) 4578→3515 (−23.2%)
9 date_histogram WEEK, non-UTC + avg 2–3 1431→1317 (−8.0%) 3010→2106 (−30.0%)
10 numeric histogram WIDE + date_histogram DAY sub 5 / 29 (outer) 2731→2484 (−9.0%) 6737→4453 (−33.9%)

Query shapes
##### 1. numeric histogram + avg
{ "size": 0, "aggs": {
  "h": { "histogram": { "field": "metrics.size", "interval": 100 },
         "aggs": { "a": { "avg": { "field": "metrics.size" } } } } } }

##### 2. numeric histogram (no sub-agg)
{ "size": 0, "aggs": {
  "h": { "histogram": { "field": "metrics.size", "interval": 100 } } } }


##### 3. date_histogram + avg, non-UTC, 1m
{ "size": 0, "aggs": {
  "h": { "date_histogram": { "field": "@timestamp", "fixed_interval": "1m", "time_zone": "+05:30" },
         "aggs": { "a": { "avg": { "field": "metrics.size" } } } } } }


##### 4. date_histogram + avg, non-UTC, 1h
{ "size": 0, "aggs": {
  "h": { "date_histogram": { "field": "@timestamp", "fixed_interval": "1h", "time_zone": "+05:30" },
         "aggs": { "a": { "avg": { "field": "metrics.size" } } } } } }


##### 5. date_histogram + stats, non-UTC, 1m
{ "size": 0, "aggs": {
  "h": { "date_histogram": { "field": "@timestamp", "fixed_interval": "1m", "time_zone": "+05:30" },
         "aggs": { "s": { "stats": { "field": "metrics.size" } } } } } }


##### 6. date_histogram (no sub-agg), non-UTC, 1m
{ "size": 0, "aggs": {
  "h": { "date_histogram": { "field": "@timestamp", "fixed_interval": "1m", "time_zone": "+05:30" } } } }


##### 7. auto_date_histogram + avg, non-UTC
{ "size": 0, "aggs": {
  "h": { "auto_date_histogram": { "field": "@timestamp", "buckets": 100, "time_zone": "+05:30" },
         "aggs": { "a": { "avg": { "field": "metrics.size" } } } } } }


##### 8. range + stats, overlapping ranges
{ "size": 0, "aggs": {
  "r": { "range": { "field": "metrics.size", "ranges": [
           { "to": 1000 }, { "from": 500, "to": 10000 },
           { "from": 5000, "to": 100000 }, { "from": 50000 } ] },
         "aggs": { "s": { "stats": { "field": "metrics.size" } } } } } }


##### 9. date_histogram + avg, scripted
{ "size": 0, "aggs": {
  "h": { "date_histogram": { "field": "@timestamp", "fixed_interval": "1m", "script": { "source": "_value" } },
         "aggs": { "a": { "avg": { "field": "metrics.size" } } } } } }


##### 10. numeric histogram + date_histogram **sub-agg** (Table 2)
{ "size": 0, "aggs": {
  "p": { "histogram": { "field": "metrics.size", "interval": 1000 },
         "aggs": { "c": { "date_histogram": { "field": "@timestamp", "calendar_interval": "day" } } } } } }

##### 11. numeric histogram + auto_date_histogram **sub-agg** (Table 2)
{ "size": 0, "aggs": {
  "p": { "histogram": { "field": "metrics.size", "interval": 1000 },
         "aggs": { "c": { "auto_date_histogram": { "field": "@timestamp", "buckets": 12 } } } } } }


#####  Lower bucket count queries
// C1 date_histogram YEAR non-UTC + avg  (1 bucket)
{ "size": 0, "aggs": { "h": { "date_histogram": { "field": "@timestamp", "calendar_interval": "year", "time_zone": "+05:30" },
                              "aggs": { "a": { "avg": { "field": "size" } } } } } }

// C2 date_histogram MONTH non-UTC + stats (1 bucket)   — C9 uses "week"
{ "size": 0, "aggs": { "h": { "date_histogram": { "field": "@timestamp", "calendar_interval": "month", "time_zone": "+05:30" },
                              "aggs": { "s": { "stats": { "field": "size" } } } } } }

// C4 numeric histogram WIDE interval + avg  (few buckets; big5 interval 2000)
{ "size": 0, "aggs": { "h": { "histogram": { "field": "size", "interval": 1000000 },
                              "aggs": { "a": { "avg": { "field": "size" } } } } } }

// C5 range 3 wide non-overlapping + avg  (fast path applies -> no intra)
{ "size": 0, "aggs": { "r": { "range": { "field": "size",
    "ranges": [ { "to": 10000 }, { "from": 10000, "to": 100000 }, { "from": 100000 } ] },
  "aggs": { "a": { "avg": { "field": "size" } } } } } }

// C6 range 3 wide OVERLAPPING + avg  (fast path declines -> intra)
{ "size": 0, "aggs": { "r": { "range": { "field": "size",
    "ranges": [ { "to": 50000 }, { "from": 10000, "to": 200000 }, { "from": 100000 } ] },
  "aggs": { "a": { "avg": { "field": "size" } } } } } }

// C7 auto_date_histogram buckets=3 non-UTC + avg  (2 buckets)
{ "size": 0, "aggs": { "h": { "auto_date_histogram": { "field": "@timestamp", "buckets": 3, "time_zone": "+05:30" },
                              "aggs": { "a": { "avg": { "field": "size" } } } } } }

// C10 numeric histogram WIDE + date_histogram DAY sub  (few buckets both levels)
{ "size": 0, "aggs": { "p": { "histogram": { "field": "size", "interval": 1000000 },
  "aggs": { "d": { "date_histogram": { "field": "@timestamp", "calendar_interval": "day" },
                   "aggs": { "a": { "avg": { "field": "size" } } } } } } }

@sohami

sohami commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

It will be useful to summarize the performance runs here. Few things I will be curious to see are: a) With this change how are standard workloads like Big5, HttpLogs, NOAA looking. We should ensure there is no regression in those workloads. b) With lower bucket counts, do we see improvement and no regression c) Pointed tests where improvement is seen which you have covered via multiple tests results in this PR already. To summarize that would be helpful

@prudhvigodithi

Copy link
Copy Markdown
Member Author

{"run-benchmark-test": "id_3"}

1 similar comment
@prudhvigodithi

Copy link
Copy Markdown
Member Author

{"run-benchmark-test": "id_3"}

@prudhvigodithi

Copy link
Copy Markdown
Member Author

{"run-benchmark-test": "id_3"}

Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
@prudhvigodithi

Copy link
Copy Markdown
Member Author

Validation on the NOAA benchmark dataset

Validated intra-segment aggregation on a opensearch-benchmark NOAA workload

Setup: weather-data-2016 — 33.6M docs, 1 shard, 19 segments, 6.1 GB, 8 slices

Real workload queries: fast path applies → gate declines intra (no-regression)

Query top-level buckets seg → bal ms Δ
range-date-histo (UTC) 6 240 → 243 +1.2%
range-date-histo-with-metrics 6 703 → 706 +0.4%
range-auto-date-histo-with-metrics 6 989 → 977 −1.0%
date-histo-histo (UTC) 157 811 → 811 0.0%

Intra-eligible queries: clean wins

Query top-level buckets seg → bal ms Δ
date_histogram 1d non-UTC + avg 1096 845 → 504 −40.4%
date_histogram week non-UTC + stats 157 683 → 427 −37.5%
auto_date_histogram non-UTC + avg 36 1251 → 738 −41.0%
range overlapping + avg 3 558 → 336 −39.8%
numeric histogram (TAVG) + avg 636 333 → 203 −38.9%
date_histogram YEAR non-UTC + avg 3 732 → 457 −37.5%
cardinality(station.id) 1 171 → 116 −32.2%
numeric histogram WIDE + stats 63 497 → 292 −41.2%
Query shapes
// range-date-histo  (top-level range → date_histogram, UTC; fast path applies → no intra)
{ "size": 0, "aggs": { "tmax": { "range": { "field": "TMAX",
    "ranges": [ {"to":-10},{"from":-10,"to":0},{"from":0,"to":10},{"from":10,"to":20},{"from":20,"to":30},{"from":30} ] },
  "aggs": { "date": { "date_histogram": { "field": "date", "calendar_interval": "1w" } } } } } }

// range-date-histo-with-metrics
{ "size": 0, "aggs": { "tmax": { "range": { "field": "TMAX",
    "ranges": [ {"to":-10},{"from":-10,"to":0},{"from":0,"to":10},{"from":10,"to":20},{"from":20,"to":30},{"from":30} ] },
  "aggs": { "date": { "date_histogram": { "field": "date", "calendar_interval": "1w" },
    "aggs": { "tmin": {"min":{"field":"TMIN"}}, "tavg": {"avg":{"field":"TAVG"}}, "tmax": {"max":{"field":"TMAX"}} } } } } } }

// range-auto-date-histo-with-metrics
{ "size": 0, "aggs": { "tmax": { "range": { "field": "TMAX",
    "ranges": [ {"to":-10},{"from":-10,"to":0},{"from":0,"to":10},{"from":10,"to":20},{"from":20,"to":30},{"from":30} ] },
  "aggs": { "date": { "auto_date_histogram": { "field": "date", "buckets": 20 },
    "aggs": { "tmin": {"min":{"field":"TMIN"}}, "tavg": {"avg":{"field":"TAVG"}}, "tmax": {"max":{"field":"TMAX"}} } } } } } }

// date-histo-histo  (top-level date_histogram UTC → numeric histogram; fast path applies → no intra)
{ "size": 0, "aggs": { "date": { "date_histogram": { "field": "date", "calendar_interval": "1w" },
  "aggs": { "tavg": { "histogram": { "field": "TAVG", "interval": 10 } } } } } }


// --- Intra-eligible variants (fast path declines / absent → intra engages) ---

// date_histogram 1d NON-UTC + avg
{ "size": 0, "aggs": { "date": { "date_histogram": { "field": "date", "fixed_interval": "1d", "time_zone": "+05:30" },
  "aggs": { "a": { "avg": { "field": "TMAX" } } } } } }

// date_histogram week NON-UTC + stats
{ "size": 0, "aggs": { "date": { "date_histogram": { "field": "date", "calendar_interval": "week", "time_zone": "+05:30" },
  "aggs": { "s": { "stats": { "field": "TMAX" } } } } } }

// auto_date_histogram NON-UTC + avg
{ "size": 0, "aggs": { "date": { "auto_date_histogram": { "field": "date", "buckets": 100, "time_zone": "+05:30" },
  "aggs": { "a": { "avg": { "field": "TMAX" } } } } } }

// range OVERLAPPING + avg
{ "size": 0, "aggs": { "r": { "range": { "field": "TMAX", "ranges": [ {"to":0},{"from":-10,"to":20},{"from":10} ] },
  "aggs": { "a": { "avg": { "field": "TAVG" } } } } } }

// numeric histogram (TAVG) + avg
{ "size": 0, "aggs": { "h": { "histogram": { "field": "TAVG", "interval": 5 },
  "aggs": { "a": { "avg": { "field": "TMAX" } } } } } }

// date_histogram YEAR NON-UTC + avg  (low bucket = 3)
{ "size": 0, "aggs": { "date": { "date_histogram": { "field": "date", "calendar_interval": "year", "time_zone": "+05:30" },
  "aggs": { "a": { "avg": { "field": "TMAX" } } } } } }

// cardinality(station.id)
{ "size": 0, "aggs": { "c": { "cardinality": { "field": "station.id" } } } }

// numeric histogram WIDE + stats  (few buckets = 63)
{ "size": 0, "aggs": { "h": { "histogram": { "field": "TMAX", "interval": 50 },
  "aggs": { "s": { "stats": { "field": "TAVG" } } } } } }

@prudhvigodithi

prudhvigodithi commented Aug 6, 2026

Copy link
Copy Markdown
Member Author

It will be useful to summarize the performance runs here. Few things I will be curious to see are: a) With this change how are standard workloads like Big5, HttpLogs, NOAA looking. We should ensure there is no regression in those workloads. b) With lower bucket counts, do we see improvement and no regression c) Pointed tests where improvement is seen which you have covered via multiple tests results in this PR already. To summarize that would be helpful

@sohami

a) I have tested few standard workload queries which either gated by fast path or the normal ones (does not support intra), did not see any regression. Will run the PR benchmark runs similar to #22531 (comment) (at the moment having issues with GitHub CI's https://www.githubstatus.com/).

Edit (Aug 7th 2026):

  • http_logs no regression Intra-segment search for histogram and range aggs #22531 (comment), only anomaly is multi_term_agg which does not go through this code path and intra is disabled for term aggs. I have confirmed from the logs as well [2026-08-07T18:06:46,569][DEBUG][o.o.s.DefaultSearchContext] [ip-172-31-66-0.ec2.internal] partition strategy decision: strategy=balanced, useIntraSegment=false, reason=some aggregations do not support intra-segment search.

    • Tested locally with and without this PR for multi_term_agg does not see any regression or issue.
  • noaa dataset is not supported as part of PR benchmarking. On local I have validated the full noaa search procedure https://github.com/opensearch-project/opensearch-benchmark-workloads/tree/main/noaa and see no regressions.

  • big5 Intra-segment search for histogram and range aggs #22531 (comment) shows improvement with range-with-metrics and range-auto-date-histo-with-metrics. Seen anomaly with cardinality-agg-high and multi_terms-keyword where the multi_terms-keyword does not go over intra.

    • Tested locally with and without this PR for multi_terms-keyword and cardinality queries does not see any regression or issue.

b) I Have updated the above comments with lower bucket count as well, still see the improvement will add it to the summary

c) Summary

Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com>
@prudhvigodithi

Copy link
Copy Markdown
Member Author

{"run-benchmark-test": "id_3"}

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Persistent review updated to latest commit e4a2f86

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

The Jenkins job url is https://build.ci.opensearch.org/job/benchmark-pull-request/8392/ . Final results will be published once the job is completed.

@prudhvigodithi

Copy link
Copy Markdown
Member Author

{"run-benchmark-test": "id_11"}

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

The Jenkins job url is https://build.ci.opensearch.org/job/benchmark-pull-request/8393/ . Final results will be published once the job is completed.

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

❌ Gradle check result for e4a2f86: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

@opensearch-ci-bot

Copy link
Copy Markdown
Contributor
Benchmark Results

Benchmark Results for Job: https://build.ci.opensearch.org/job/benchmark-pull-request/8393/

Metric Task Value Unit
Cumulative indexing time of primary shards 0 min
Min cumulative indexing time across primary shards 0 min
Median cumulative indexing time across primary shards 0 min
Max cumulative indexing time across primary shards 0 min
Cumulative indexing throttle time of primary shards 0 min
Min cumulative indexing throttle time across primary shards 0 min
Median cumulative indexing throttle time across primary shards 0 min
Max cumulative indexing throttle time across primary shards 0 min
Cumulative merge time of primary shards 0 min
Cumulative merge count of primary shards 0
Min cumulative merge time across primary shards 0 min
Median cumulative merge time across primary shards 0 min
Max cumulative merge time across primary shards 0 min
Cumulative merge throttle time of primary shards 0 min
Min cumulative merge throttle time across primary shards 0 min
Median cumulative merge throttle time across primary shards 0 min
Max cumulative merge throttle time across primary shards 0 min
Cumulative refresh time of primary shards 0 min
Cumulative refresh count of primary shards 32
Min cumulative refresh time across primary shards 0 min
Median cumulative refresh time across primary shards 0 min
Max cumulative refresh time across primary shards 0 min
Cumulative flush time of primary shards 0 min
Cumulative flush count of primary shards 8
Min cumulative flush time across primary shards 0 min
Median cumulative flush time across primary shards 0 min
Max cumulative flush time across primary shards 0 min
Total Young Gen GC time 1.69 s
Total Young Gen GC count 58
Total Old Gen GC time 0 s
Total Old Gen GC count 0
Doc count 2.47249e+08
Store size 15.2822 GB
Translog size 4.09782e-07 GB
Heap used for segments 0 MB
Heap used for doc values 0 MB
Heap used for terms 0 MB
Heap used for norms 0 MB
Heap used for points 0 MB
Heap used for stored fields 0 MB
Segment count 70
Min Throughput wait-for-snapshot-recovery 4.17127e+07 byte/s
Mean Throughput wait-for-snapshot-recovery 4.17127e+07 byte/s
Median Throughput wait-for-snapshot-recovery 4.17127e+07 byte/s
Max Throughput wait-for-snapshot-recovery 4.17127e+07 byte/s
100th percentile latency wait-for-snapshot-recovery 388828 ms
100th percentile service time wait-for-snapshot-recovery 388828 ms
error rate wait-for-snapshot-recovery 0 %
Min Throughput match-all 8 ops/s
Mean Throughput match-all 8 ops/s
Median Throughput match-all 8 ops/s
Max Throughput match-all 8 ops/s
50th percentile latency match-all 4.60314 ms
90th percentile latency match-all 5.0736 ms
99th percentile latency match-all 6.19311 ms
100th percentile latency match-all 6.52981 ms
50th percentile service time match-all 3.67671 ms
90th percentile service time match-all 3.89352 ms
99th percentile service time match-all 4.66147 ms
100th percentile service time match-all 5.20845 ms
error rate match-all 0 %
Min Throughput term 49.88 ops/s
Mean Throughput term 49.88 ops/s
Median Throughput term 49.88 ops/s
Max Throughput term 49.88 ops/s
50th percentile latency term 3.7466 ms
90th percentile latency term 4.19547 ms
99th percentile latency term 6.64048 ms
100th percentile latency term 8.84769 ms
50th percentile service time term 3.009 ms
90th percentile service time term 3.23492 ms
99th percentile service time term 3.45127 ms
100th percentile service time term 3.51795 ms
error rate term 0 %
Min Throughput range 1 ops/s
Mean Throughput range 1.01 ops/s
Median Throughput range 1.01 ops/s
Max Throughput range 1.01 ops/s
50th percentile latency range 5.99568 ms
90th percentile latency range 6.43351 ms
99th percentile latency range 7.21671 ms
100th percentile latency range 7.68305 ms
50th percentile service time range 4.21833 ms
90th percentile service time range 4.50644 ms
99th percentile service time range 5.49598 ms
100th percentile service time range 5.75392 ms
error rate range 0 %
Min Throughput 200s-in-range 32.94 ops/s
Mean Throughput 200s-in-range 32.94 ops/s
Median Throughput 200s-in-range 32.94 ops/s
Max Throughput 200s-in-range 32.94 ops/s
50th percentile latency 200s-in-range 4.91098 ms
90th percentile latency 200s-in-range 5.69971 ms
99th percentile latency 200s-in-range 7.11119 ms
100th percentile latency 200s-in-range 8.17481 ms
50th percentile service time 200s-in-range 3.58137 ms
90th percentile service time 200s-in-range 3.9359 ms
99th percentile service time 200s-in-range 5.33979 ms
100th percentile service time 200s-in-range 6.37825 ms
error rate 200s-in-range 0 %
Min Throughput 400s-in-range 50.03 ops/s
Mean Throughput 400s-in-range 50.03 ops/s
Median Throughput 400s-in-range 50.03 ops/s
Max Throughput 400s-in-range 50.03 ops/s
50th percentile latency 400s-in-range 3.55725 ms
90th percentile latency 400s-in-range 3.94494 ms
99th percentile latency 400s-in-range 6.7029 ms
100th percentile latency 400s-in-range 9.04697 ms
50th percentile service time 400s-in-range 2.76924 ms
90th percentile service time 400s-in-range 2.99967 ms
99th percentile service time 400s-in-range 3.30384 ms
100th percentile service time 400s-in-range 3.4185 ms
error rate 400s-in-range 0 %
Min Throughput hourly_agg 1.01 ops/s
Mean Throughput hourly_agg 1.01 ops/s
Median Throughput hourly_agg 1.01 ops/s
Max Throughput hourly_agg 1.02 ops/s
50th percentile latency hourly_agg 14.0812 ms
90th percentile latency hourly_agg 15.0258 ms
99th percentile latency hourly_agg 16.7765 ms
100th percentile latency hourly_agg 16.9688 ms
50th percentile service time hourly_agg 12.1229 ms
90th percentile service time hourly_agg 13.0226 ms
99th percentile service time hourly_agg 14.869 ms
100th percentile service time hourly_agg 15.3474 ms
error rate hourly_agg 0 %
Min Throughput hourly_agg_with_filter 1 ops/s
Mean Throughput hourly_agg_with_filter 1 ops/s
Median Throughput hourly_agg_with_filter 1 ops/s
Max Throughput hourly_agg_with_filter 1 ops/s
50th percentile latency hourly_agg_with_filter 84.8421 ms
90th percentile latency hourly_agg_with_filter 97.7808 ms
99th percentile latency hourly_agg_with_filter 101.823 ms
100th percentile latency hourly_agg_with_filter 102.912 ms
50th percentile service time hourly_agg_with_filter 83.2676 ms
90th percentile service time hourly_agg_with_filter 96.0864 ms
99th percentile service time hourly_agg_with_filter 99.8262 ms
100th percentile service time hourly_agg_with_filter 100.809 ms
error rate hourly_agg_with_filter 0 %
Min Throughput hourly_agg_with_filter_and_metrics 0.26 ops/s
Mean Throughput hourly_agg_with_filter_and_metrics 0.26 ops/s
Median Throughput hourly_agg_with_filter_and_metrics 0.26 ops/s
Max Throughput hourly_agg_with_filter_and_metrics 0.26 ops/s
50th percentile latency hourly_agg_with_filter_and_metrics 281717 ms
90th percentile latency hourly_agg_with_filter_and_metrics 393337 ms
99th percentile latency hourly_agg_with_filter_and_metrics 418499 ms
100th percentile latency hourly_agg_with_filter_and_metrics 419889 ms
50th percentile service time hourly_agg_with_filter_and_metrics 3779.88 ms
90th percentile service time hourly_agg_with_filter_and_metrics 3835.77 ms
99th percentile service time hourly_agg_with_filter_and_metrics 3954.97 ms
100th percentile service time hourly_agg_with_filter_and_metrics 3970.79 ms
error rate hourly_agg_with_filter_and_metrics 0 %
Min Throughput multi_term_agg 0.22 ops/s
Mean Throughput multi_term_agg 0.22 ops/s
Median Throughput multi_term_agg 0.22 ops/s
Max Throughput multi_term_agg 0.22 ops/s
50th percentile latency multi_term_agg 360491 ms
90th percentile latency multi_term_agg 501967 ms
99th percentile latency multi_term_agg 535083 ms
100th percentile latency multi_term_agg 536918 ms
50th percentile service time multi_term_agg 4620.06 ms
90th percentile service time multi_term_agg 4754.33 ms
99th percentile service time multi_term_agg 5027.83 ms
100th percentile service time multi_term_agg 5241.74 ms
error rate multi_term_agg 0 %
Min Throughput scroll 25.05 pages/s
Mean Throughput scroll 25.08 pages/s
Median Throughput scroll 25.08 pages/s
Max Throughput scroll 25.15 pages/s
50th percentile latency scroll 186.862 ms
90th percentile latency scroll 190.254 ms
99th percentile latency scroll 244.802 ms
100th percentile latency scroll 299.217 ms
50th percentile service time scroll 185.037 ms
90th percentile service time scroll 188.503 ms
99th percentile service time scroll 243.22 ms
100th percentile service time scroll 297.241 ms
error rate scroll 0 %
Min Throughput desc_sort_size 1 ops/s
Mean Throughput desc_sort_size 1 ops/s
Median Throughput desc_sort_size 1 ops/s
Max Throughput desc_sort_size 1 ops/s
50th percentile latency desc_sort_size 7.24389 ms
90th percentile latency desc_sort_size 7.774 ms
99th percentile latency desc_sort_size 9.1384 ms
100th percentile latency desc_sort_size 9.64859 ms
50th percentile service time desc_sort_size 5.32515 ms
90th percentile service time desc_sort_size 5.96818 ms
99th percentile service time desc_sort_size 7.06366 ms
100th percentile service time desc_sort_size 7.62153 ms
error rate desc_sort_size 0 %
Min Throughput asc_sort_size 1 ops/s
Mean Throughput asc_sort_size 1 ops/s
Median Throughput asc_sort_size 1 ops/s
Max Throughput asc_sort_size 1 ops/s
50th percentile latency asc_sort_size 8.00563 ms
90th percentile latency asc_sort_size 8.68202 ms
99th percentile latency asc_sort_size 9.25926 ms
100th percentile latency asc_sort_size 9.29273 ms
50th percentile service time asc_sort_size 6.0995 ms
90th percentile service time asc_sort_size 6.81037 ms
99th percentile service time asc_sort_size 7.3342 ms
100th percentile service time asc_sort_size 7.48778 ms
error rate asc_sort_size 0 %
Min Throughput desc_sort_timestamp 1 ops/s
Mean Throughput desc_sort_timestamp 1 ops/s
Median Throughput desc_sort_timestamp 1 ops/s
Max Throughput desc_sort_timestamp 1 ops/s
50th percentile latency desc_sort_timestamp 14.3938 ms
90th percentile latency desc_sort_timestamp 15.0001 ms
99th percentile latency desc_sort_timestamp 15.7977 ms
100th percentile latency desc_sort_timestamp 16.2178 ms
50th percentile service time desc_sort_timestamp 12.6646 ms
90th percentile service time desc_sort_timestamp 12.9367 ms
99th percentile service time desc_sort_timestamp 14.0014 ms
100th percentile service time desc_sort_timestamp 14.1811 ms
error rate desc_sort_timestamp 0 %
Min Throughput asc_sort_timestamp 1 ops/s
Mean Throughput asc_sort_timestamp 1 ops/s
Median Throughput asc_sort_timestamp 1 ops/s
Max Throughput asc_sort_timestamp 1 ops/s
50th percentile latency asc_sort_timestamp 7.80189 ms
90th percentile latency asc_sort_timestamp 8.45678 ms
99th percentile latency asc_sort_timestamp 9.39259 ms
100th percentile latency asc_sort_timestamp 9.41047 ms
50th percentile service time asc_sort_timestamp 5.78334 ms
90th percentile service time asc_sort_timestamp 6.38309 ms
99th percentile service time asc_sort_timestamp 7.60031 ms
100th percentile service time asc_sort_timestamp 7.64329 ms
error rate asc_sort_timestamp 0 %
Min Throughput desc_sort_with_after_timestamp 1.01 ops/s
Mean Throughput desc_sort_with_after_timestamp 1.02 ops/s
Median Throughput desc_sort_with_after_timestamp 1.02 ops/s
Max Throughput desc_sort_with_after_timestamp 1.1 ops/s
50th percentile latency desc_sort_with_after_timestamp 6.06497 ms
90th percentile latency desc_sort_with_after_timestamp 6.69252 ms
99th percentile latency desc_sort_with_after_timestamp 7.06049 ms
100th percentile latency desc_sort_with_after_timestamp 7.21527 ms
50th percentile service time desc_sort_with_after_timestamp 4.27526 ms
90th percentile service time desc_sort_with_after_timestamp 4.62442 ms
99th percentile service time desc_sort_with_after_timestamp 5.15871 ms
100th percentile service time desc_sort_with_after_timestamp 5.50491 ms
error rate desc_sort_with_after_timestamp 0 %
Min Throughput asc_sort_with_after_timestamp 1.01 ops/s
Mean Throughput asc_sort_with_after_timestamp 1.02 ops/s
Median Throughput asc_sort_with_after_timestamp 1.02 ops/s
Max Throughput asc_sort_with_after_timestamp 1.1 ops/s
50th percentile latency asc_sort_with_after_timestamp 5.52468 ms
90th percentile latency asc_sort_with_after_timestamp 5.96357 ms
99th percentile latency asc_sort_with_after_timestamp 6.17677 ms
100th percentile latency asc_sort_with_after_timestamp 6.18767 ms
50th percentile service time asc_sort_with_after_timestamp 3.71639 ms
90th percentile service time asc_sort_with_after_timestamp 3.86078 ms
99th percentile service time asc_sort_with_after_timestamp 4.18888 ms
100th percentile service time asc_sort_with_after_timestamp 4.23724 ms
error rate asc_sort_with_after_timestamp 0 %
Min Throughput range_size 2.01 ops/s
Mean Throughput range_size 2.01 ops/s
Median Throughput range_size 2.01 ops/s
Max Throughput range_size 2.02 ops/s
50th percentile latency range_size 9.01319 ms
90th percentile latency range_size 9.65653 ms
99th percentile latency range_size 19.6169 ms
100th percentile latency range_size 27.5206 ms
50th percentile service time range_size 7.70992 ms
90th percentile service time range_size 8.00252 ms
99th percentile service time range_size 18.0543 ms
100th percentile service time range_size 26.2802 ms
error rate range_size 0 %
Min Throughput range_with_asc_sort 2.01 ops/s
Mean Throughput range_with_asc_sort 2.01 ops/s
Median Throughput range_with_asc_sort 2.01 ops/s
Max Throughput range_with_asc_sort 2.02 ops/s
50th percentile latency range_with_asc_sort 18.7246 ms
90th percentile latency range_with_asc_sort 20.525 ms
99th percentile latency range_with_asc_sort 21.7921 ms
100th percentile latency range_with_asc_sort 22.0533 ms
50th percentile service time range_with_asc_sort 17.2127 ms
90th percentile service time range_with_asc_sort 18.9736 ms
99th percentile service time range_with_asc_sort 20.5872 ms
100th percentile service time range_with_asc_sort 20.6241 ms
error rate range_with_asc_sort 0 %
Min Throughput range_with_desc_sort 2.01 ops/s
Mean Throughput range_with_desc_sort 2.01 ops/s
Median Throughput range_with_desc_sort 2.01 ops/s
Max Throughput range_with_desc_sort 2.02 ops/s
50th percentile latency range_with_desc_sort 20.8552 ms
90th percentile latency range_with_desc_sort 24.2809 ms
99th percentile latency range_with_desc_sort 25.6184 ms
100th percentile latency range_with_desc_sort 25.6269 ms
50th percentile service time range_with_desc_sort 18.7078 ms
90th percentile service time range_with_desc_sort 22.492 ms
99th percentile service time range_with_desc_sort 24.1913 ms
100th percentile service time range_with_desc_sort 24.1997 ms
error rate range_with_desc_sort 0 %

@opensearch-ci-bot

Copy link
Copy Markdown
Contributor
Benchmark Baseline Comparison Results

Benchmark Results for Job: https://build.ci.opensearch.org/job/benchmark-compare/293/

Metric Task Baseline Contender Diff Unit
Cumulative indexing time of primary shards 0 0 0 min
Min cumulative indexing time across primary shard 0 0 0 min
Median cumulative indexing time across primary shard 0 0 0 min
Max cumulative indexing time across primary shard 0 0 0 min
Cumulative indexing throttle time of primary shards 0 0 0 min
Min cumulative indexing throttle time across primary shard 0 0 0 min
Median cumulative indexing throttle time across primary shard 0 0 0 min
Max cumulative indexing throttle time across primary shard 0 0 0 min
Cumulative merge time of primary shards 0 0 0 min
Cumulative merge count of primary shards 0 0 0
Min cumulative merge time across primary shard 0 0 0 min
Median cumulative merge time across primary shard 0 0 0 min
Max cumulative merge time across primary shard 0 0 0 min
Cumulative merge throttle time of primary shards 0 0 0 min
Min cumulative merge throttle time across primary shard 0 0 0 min
Median cumulative merge throttle time across primary shard 0 0 0 min
Max cumulative merge throttle time across primary shard 0 0 0 min
Cumulative refresh time of primary shards 0 0 0 min
Cumulative refresh count of primary shards 32 32 0
Min cumulative refresh time across primary shard 0 0 0 min
Median cumulative refresh time across primary shard 0 0 0 min
Max cumulative refresh time across primary shard 0 0 0 min
Cumulative flush time of primary shards 0 0 0 min
Cumulative flush count of primary shards 8 8 0
Min cumulative flush time across primary shard 0 0 0 min
Median cumulative flush time across primary shard 0 0 0 min
Max cumulative flush time across primary shard 0 0 0 min
Total Young Gen GC time 1.495 1.69 0.195 s
Total Young Gen GC count 58 58 0
Total Old Gen GC time 0 0 0 s
Total Old Gen GC count 0 0 0
Store size 15.2822 15.2822 0 GB
Translog size 4.09782e-07 4.09782e-07 0 GB
Heap used for segments 0 0 0 MB
Heap used for doc values 0 0 0 MB
Heap used for terms 0 0 0 MB
Heap used for norms 0 0 0 MB
Heap used for points 0 0 0 MB
Heap used for stored fields 0 0 0 MB
Segment count 70 70 0
Min Throughput wait-for-snapshot-recovery 4.15667e+07 4.17127e+07 145924 byte/s
Mean Throughput wait-for-snapshot-recovery 4.15667e+07 4.17127e+07 145924 byte/s
Median Throughput wait-for-snapshot-recovery 4.15667e+07 4.17127e+07 145924 byte/s
Max Throughput wait-for-snapshot-recovery 4.15667e+07 4.17127e+07 145924 byte/s
100th percentile latency wait-for-snapshot-recovery 389785 388828 -957.656 ms
100th percentile service time wait-for-snapshot-recovery 389785 388828 -957.656 ms
error rate wait-for-snapshot-recovery 0 0 0 %
Min Throughput match-all 7.99732 7.99996 0.00265 ops/s
Mean Throughput match-all 7.99755 7.99999 0.00244 ops/s
Median Throughput match-all 7.99756 7.99998 0.00242 ops/s
Max Throughput match-all 7.99776 8.00004 0.00229 ops/s
50th percentile latency match-all 4.72669 4.60314 -0.12355 ms
90th percentile latency match-all 5.21253 5.0736 -0.13894 ms
99th percentile latency match-all 6.05814 6.19311 0.13497 ms
100th percentile latency match-all 6.19635 6.52981 0.33346 ms
50th percentile service time match-all 3.83791 3.67671 -0.16119 ms
90th percentile service time match-all 4.07673 3.89352 -0.18321 ms
99th percentile service time match-all 4.98628 4.66147 -0.32482 ms
100th percentile service time match-all 5.59758 5.20845 -0.38912 ms
error rate match-all 0 0 0 %
Min Throughput term 49.8556 49.8768 0.02117 ops/s
Mean Throughput term 49.861 49.8804 0.01941 ops/s
Median Throughput term 49.861 49.8804 0.01941 ops/s
Max Throughput term 49.8663 49.884 0.01765 ops/s
50th percentile latency term 4.37058 3.7466 -0.62398 ms
90th percentile latency term 4.95147 4.19547 -0.756 ms
99th percentile latency term 8.66786 6.64048 -2.02738 ms
100th percentile latency term 9.16463 8.84769 -0.31694 ms
50th percentile service time term 3.66992 3.009 -0.66092 ms
90th percentile service time term 3.96804 3.23492 -0.73312 ms
99th percentile service time term 5.97253 3.45127 -2.52126 ms
100th percentile service time term 7.61575 3.51795 -4.0978 ms
error rate term 0 0 0 %
Min Throughput range 1.00476 1.00472 -4e-05 ops/s
Mean Throughput range 1.0066 1.00654 -5e-05 ops/s
Median Throughput range 1.00634 1.00629 -5e-05 ops/s
Max Throughput range 1.00948 1.00941 -8e-05 ops/s
50th percentile latency range 6.08092 5.99568 -0.08524 ms
90th percentile latency range 6.59675 6.43351 -0.16324 ms
99th percentile latency range 7.39892 7.21671 -0.18221 ms
100th percentile latency range 7.98141 7.68305 -0.29836 ms
50th percentile service time range 4.21034 4.21833 0.008 ms
90th percentile service time range 4.4222 4.50644 0.08425 ms
99th percentile service time range 5.21093 5.49598 0.28505 ms
100th percentile service time range 5.70903 5.75392 0.04489 ms
error rate range 0 0 0 %
Min Throughput 200s-in-range 32.9054 32.9395 0.03407 ops/s
Mean Throughput 200s-in-range 32.9116 32.9419 0.03031 ops/s
Median Throughput 200s-in-range 32.9136 32.9417 0.02816 ops/s
Max Throughput 200s-in-range 32.9158 32.9445 0.02869 ops/s
50th percentile latency 200s-in-range 4.91726 4.91098 -0.00629 ms
90th percentile latency 200s-in-range 5.74577 5.69971 -0.04607 ms
99th percentile latency 200s-in-range 6.70062 7.11119 0.41057 ms
100th percentile latency 200s-in-range 6.89806 8.17481 1.27675 ms
50th percentile service time 200s-in-range 3.6557 3.58137 -0.07432 ms
90th percentile service time 200s-in-range 4.02336 3.9359 -0.08746 ms
99th percentile service time 200s-in-range 5.3567 5.33979 -0.01691 ms
100th percentile service time 200s-in-range 6.27355 6.37825 0.10471 ms
error rate 200s-in-range 0 0 0 %
Min Throughput 400s-in-range 50.0242 50.0283 0.00409 ops/s
Mean Throughput 400s-in-range 50.0262 50.0305 0.00429 ops/s
Median Throughput 400s-in-range 50.0262 50.0305 0.00429 ops/s
Max Throughput 400s-in-range 50.0282 50.0327 0.00449 ops/s
50th percentile latency 400s-in-range 3.90751 3.55725 -0.35026 ms
90th percentile latency 400s-in-range 4.34801 3.94494 -0.40306 ms
99th percentile latency 400s-in-range 6.51106 6.7029 0.19184 ms
100th percentile latency 400s-in-range 7.64999 9.04697 1.39698 ms
50th percentile service time 400s-in-range 3.19554 2.76924 -0.4263 ms
90th percentile service time 400s-in-range 3.36678 2.99967 -0.36711 ms
99th percentile service time 400s-in-range 3.72744 3.30384 -0.4236 ms
100th percentile service time 400s-in-range 3.84225 3.4185 -0.42375 ms
error rate 400s-in-range 0 0 0 %
Min Throughput hourly_agg 1.00563 1.00559 -4e-05 ops/s
Mean Throughput hourly_agg 1.00926 1.00921 -6e-05 ops/s
Median Throughput hourly_agg 1.00842 1.00837 -5e-05 ops/s
Max Throughput hourly_agg 1.01674 1.01664 -0.0001 ops/s
50th percentile latency hourly_agg 14.6704 14.0812 -0.58925 ms
90th percentile latency hourly_agg 15.8906 15.0258 -0.86471 ms
99th percentile latency hourly_agg 17.813 16.7765 -1.03648 ms
100th percentile latency hourly_agg 18.4128 16.9688 -1.44401 ms
50th percentile service time hourly_agg 12.8571 12.1229 -0.73417 ms
90th percentile service time hourly_agg 13.9885 13.0226 -0.96589 ms
99th percentile service time hourly_agg 15.8787 14.869 -1.00967 ms
100th percentile service time hourly_agg 16.4541 15.3474 -1.10666 ms
error rate hourly_agg 0 0 0 %
Min Throughput hourly_agg_with_filter 1.00062 1.00153 0.00091 ops/s
Mean Throughput hourly_agg_with_filter 1.00102 1.00251 0.00149 ops/s
Median Throughput hourly_agg_with_filter 1.00092 1.00229 0.00136 ops/s
Max Throughput hourly_agg_with_filter 1.00184 1.00451 0.00268 ops/s
50th percentile latency hourly_agg_with_filter 88.4935 84.8421 -3.65143 ms
90th percentile latency hourly_agg_with_filter 101.714 97.7808 -3.9334 ms
99th percentile latency hourly_agg_with_filter 109.871 101.823 -8.04831 ms
100th percentile latency hourly_agg_with_filter 111.578 102.912 -8.66594 ms
50th percentile service time hourly_agg_with_filter 87.0929 83.2676 -3.82528 ms
90th percentile service time hourly_agg_with_filter 99.8083 96.0864 -3.72185 ms
99th percentile service time hourly_agg_with_filter 107.772 99.8262 -7.94558 ms
100th percentile service time hourly_agg_with_filter 109.378 100.809 -8.56945 ms
error rate hourly_agg_with_filter 0 0 0 %
Min Throughput hourly_agg_with_filter_and_metrics 0.259656 0.26274 0.00308 ops/s
Mean Throughput hourly_agg_with_filter_and_metrics 0.26002 0.263426 0.00341 ops/s
Median Throughput hourly_agg_with_filter_and_metrics 0.260012 0.263476 0.00346 ops/s
Max Throughput hourly_agg_with_filter_and_metrics 0.260381 0.263702 0.00332 ops/s
50th percentile latency hourly_agg_with_filter_and_metrics 287328 281717 -5611.27 ms
90th percentile latency hourly_agg_with_filter_and_metrics 400839 393337 -7501.73 ms
99th percentile latency hourly_agg_with_filter_and_metrics 426315 418499 -7815.64 ms
100th percentile latency hourly_agg_with_filter_and_metrics 427755 419889 -7866.06 ms
50th percentile service time hourly_agg_with_filter_and_metrics 3829.06 3779.88 -49.1807 ms
90th percentile service time hourly_agg_with_filter_and_metrics 3910.56 3835.77 -74.7821 ms
99th percentile service time hourly_agg_with_filter_and_metrics 4089.82 3954.97 -134.853 ms
100th percentile service time hourly_agg_with_filter_and_metrics 4119.48 3970.79 -148.691 ms
error rate hourly_agg_with_filter_and_metrics 0 0 0 %
Min Throughput multi_term_agg 0.219915 0.217099 -0.00282 ops/s
Mean Throughput multi_term_agg 0.22053 0.218266 -0.00226 ops/s
Median Throughput multi_term_agg 0.220518 0.218226 -0.00229 ops/s
Max Throughput multi_term_agg 0.221071 0.218883 -0.00219 ops/s
50th percentile latency multi_term_agg 355410 360491 5081 ms
90th percentile latency multi_term_agg 497084 501967 4883.08 ms
99th percentile latency multi_term_agg 528452 535083 6630.28 ms
100th percentile latency multi_term_agg 530081 536918 6837.38 ms
50th percentile service time multi_term_agg 4543.53 4620.06 76.5295 ms
90th percentile service time multi_term_agg 4711.41 4754.33 42.9224 ms
99th percentile service time multi_term_agg 4821.52 5027.83 206.316 ms
100th percentile service time multi_term_agg 4832.79 5241.74 408.955 ms
error rate multi_term_agg 0 0 0 %
Min Throughput scroll 25.0525 25.0501 -0.00237 pages/s
Mean Throughput scroll 25.0865 25.0825 -0.00392 pages/s
Median Throughput scroll 25.0787 25.0751 -0.00357 pages/s
Max Throughput scroll 25.1566 25.1496 -0.00708 pages/s
50th percentile latency scroll 185.458 186.862 1.40404 ms
90th percentile latency scroll 193.864 190.254 -3.61023 ms
99th percentile latency scroll 225.863 244.802 18.9391 ms
100th percentile latency scroll 308.625 299.217 -9.40817 ms
50th percentile service time scroll 183.715 185.037 1.32161 ms
90th percentile service time scroll 191.771 188.503 -3.26817 ms
99th percentile service time scroll 224.158 243.22 19.0622 ms
100th percentile service time scroll 306.499 297.241 -9.25845 ms
error rate scroll 0 0 0 %
Min Throughput desc_sort_size 1.00321 1.0032 -1e-05 ops/s
Mean Throughput desc_sort_size 1.0039 1.00389 -1e-05 ops/s
Median Throughput desc_sort_size 1.00385 1.00384 -1e-05 ops/s
Max Throughput desc_sort_size 1.0048 1.00479 -1e-05 ops/s
50th percentile latency desc_sort_size 7.37047 7.24389 -0.12657 ms
90th percentile latency desc_sort_size 8.17464 7.774 -0.40064 ms
99th percentile latency desc_sort_size 9.51026 9.1384 -0.37186 ms
100th percentile latency desc_sort_size 9.68783 9.64859 -0.03923 ms
50th percentile service time desc_sort_size 5.59653 5.32515 -0.27139 ms
90th percentile service time desc_sort_size 6.14795 5.96818 -0.17977 ms
99th percentile service time desc_sort_size 7.5286 7.06366 -0.46494 ms
100th percentile service time desc_sort_size 7.76874 7.62153 -0.14721 ms
error rate desc_sort_size 0 0 0 %
Min Throughput asc_sort_size 1.00319 1.00322 3e-05 ops/s
Mean Throughput asc_sort_size 1.00388 1.00391 3e-05 ops/s
Median Throughput asc_sort_size 1.00383 1.00385 3e-05 ops/s
Max Throughput asc_sort_size 1.00477 1.00481 4e-05 ops/s
50th percentile latency asc_sort_size 8.57846 8.00563 -0.57282 ms
90th percentile latency asc_sort_size 9.26667 8.68202 -0.58465 ms
99th percentile latency asc_sort_size 10.2286 9.25926 -0.96934 ms
100th percentile latency asc_sort_size 10.2767 9.29273 -0.98398 ms
50th percentile service time asc_sort_size 6.68417 6.0995 -0.58467 ms
90th percentile service time asc_sort_size 7.22497 6.81037 -0.4146 ms
99th percentile service time asc_sort_size 8.17877 7.3342 -0.84457 ms
100th percentile service time asc_sort_size 8.18986 7.48778 -0.70207 ms
error rate asc_sort_size 0 0 0 %
Min Throughput desc_sort_timestamp 1.00312 1.00311 -0 ops/s
Mean Throughput desc_sort_timestamp 1.00379 1.00378 -1e-05 ops/s
Median Throughput desc_sort_timestamp 1.00374 1.00373 -1e-05 ops/s
Max Throughput desc_sort_timestamp 1.00466 1.00465 -1e-05 ops/s
50th percentile latency desc_sort_timestamp 14.6078 14.3938 -0.21397 ms
90th percentile latency desc_sort_timestamp 15.3855 15.0001 -0.38541 ms
99th percentile latency desc_sort_timestamp 18.1026 15.7977 -2.30495 ms
100th percentile latency desc_sort_timestamp 18.8058 16.2178 -2.58791 ms
50th percentile service time desc_sort_timestamp 12.9736 12.6646 -0.30904 ms
90th percentile service time desc_sort_timestamp 13.3601 12.9367 -0.42341 ms
99th percentile service time desc_sort_timestamp 16.5114 14.0014 -2.51002 ms
100th percentile service time desc_sort_timestamp 17.4894 14.1811 -3.3083 ms
error rate desc_sort_timestamp 0 0 0 %
Min Throughput asc_sort_timestamp 1.00328 1.00328 1e-05 ops/s
Mean Throughput asc_sort_timestamp 1.00398 1.00398 0 ops/s
Median Throughput asc_sort_timestamp 1.00393 1.00393 0 ops/s
Max Throughput asc_sort_timestamp 1.0049 1.0049 0 ops/s
50th percentile latency asc_sort_timestamp 8.19072 7.80189 -0.38883 ms
90th percentile latency asc_sort_timestamp 8.6478 8.45678 -0.19102 ms
99th percentile latency asc_sort_timestamp 9.27165 9.39259 0.12093 ms
100th percentile latency asc_sort_timestamp 9.517 9.41047 -0.10653 ms
50th percentile service time asc_sort_timestamp 6.30646 5.78334 -0.52312 ms
90th percentile service time asc_sort_timestamp 6.79789 6.38309 -0.41481 ms
99th percentile service time asc_sort_timestamp 7.28554 7.60031 0.31477 ms
100th percentile service time asc_sort_timestamp 7.32957 7.64329 0.31371 ms
error rate asc_sort_timestamp 0 0 0 %
Min Throughput desc_sort_with_after_timestamp 1.00901 1.009 -0 ops/s
Mean Throughput desc_sort_with_after_timestamp 1.02397 1.02398 2e-05 ops/s
Median Throughput desc_sort_with_after_timestamp 1.01649 1.0165 1e-05 ops/s
Max Throughput desc_sort_with_after_timestamp 1.09789 1.09796 7e-05 ops/s
50th percentile latency desc_sort_with_after_timestamp 6.17329 6.06497 -0.10832 ms
90th percentile latency desc_sort_with_after_timestamp 6.70042 6.69252 -0.0079 ms
99th percentile latency desc_sort_with_after_timestamp 7.40969 7.06049 -0.34919 ms
100th percentile latency desc_sort_with_after_timestamp 7.75771 7.21527 -0.54244 ms
50th percentile service time desc_sort_with_after_timestamp 4.32982 4.27526 -0.05456 ms
90th percentile service time desc_sort_with_after_timestamp 4.86677 4.62442 -0.24235 ms
99th percentile service time desc_sort_with_after_timestamp 5.52301 5.15871 -0.36431 ms
100th percentile service time desc_sort_with_after_timestamp 5.61145 5.50491 -0.10654 ms
error rate desc_sort_with_after_timestamp 0 0 0 %
Min Throughput asc_sort_with_after_timestamp 1.00907 1.00907 -0 ops/s
Mean Throughput asc_sort_with_after_timestamp 1.02417 1.02415 -2e-05 ops/s
Median Throughput asc_sort_with_after_timestamp 1.01662 1.01661 -1e-05 ops/s
Max Throughput asc_sort_with_after_timestamp 1.09885 1.0987 -0.00015 ops/s
50th percentile latency asc_sort_with_after_timestamp 5.39618 5.52468 0.1285 ms
90th percentile latency asc_sort_with_after_timestamp 5.79889 5.96357 0.16468 ms
99th percentile latency asc_sort_with_after_timestamp 6.01392 6.17677 0.16285 ms
100th percentile latency asc_sort_with_after_timestamp 6.08642 6.18767 0.10124 ms
50th percentile service time asc_sort_with_after_timestamp 3.52357 3.71639 0.19282 ms
90th percentile service time asc_sort_with_after_timestamp 3.71031 3.86078 0.15047 ms
99th percentile service time asc_sort_with_after_timestamp 4.00352 4.18888 0.18537 ms
100th percentile service time asc_sort_with_after_timestamp 4.0812 4.23724 0.15604 ms
error rate asc_sort_with_after_timestamp 0 0 0 %
Min Throughput range_size 2.00957 2.0095 -7e-05 ops/s
Mean Throughput range_size 2.01324 2.01314 -0.0001 ops/s
Median Throughput range_size 2.01272 2.01263 -9e-05 ops/s
Max Throughput range_size 2.01894 2.01883 -0.00011 ops/s
50th percentile latency range_size 9.02118 9.01319 -0.00799 ms
90th percentile latency range_size 9.54672 9.65653 0.10981 ms
99th percentile latency range_size 10.0441 19.6169 9.57275 ms
100th percentile latency range_size 10.1533 27.5206 17.3672 ms
50th percentile service time range_size 7.68692 7.70992 0.02301 ms
90th percentile service time range_size 8.03642 8.00252 -0.0339 ms
99th percentile service time range_size 8.53193 18.0543 9.5224 ms
100th percentile service time range_size 8.76669 26.2802 17.5135 ms
error rate range_size 0 0 0 %
Min Throughput range_with_asc_sort 2.00821 2.00829 8e-05 ops/s
Mean Throughput range_with_asc_sort 2.01133 2.01147 0.00013 ops/s
Median Throughput range_with_asc_sort 2.01091 2.01101 0.00011 ops/s
Max Throughput range_with_asc_sort 2.01622 2.01639 0.00017 ops/s
50th percentile latency range_with_asc_sort 18.7229 18.7246 0.00175 ms
90th percentile latency range_with_asc_sort 20.6936 20.525 -0.16864 ms
99th percentile latency range_with_asc_sort 22.0169 21.7921 -0.22483 ms
100th percentile latency range_with_asc_sort 22.3468 22.0533 -0.29352 ms
50th percentile service time range_with_asc_sort 17.4242 17.2127 -0.21145 ms
90th percentile service time range_with_asc_sort 19.2025 18.9736 -0.22893 ms
99th percentile service time range_with_asc_sort 20.4513 20.5872 0.13586 ms
100th percentile service time range_with_asc_sort 20.724 20.6241 -0.09988 ms
error rate range_with_asc_sort 0 0 0 %
Min Throughput range_with_desc_sort 2.0094 2.00927 -0.00013 ops/s
Mean Throughput range_with_desc_sort 2.013 2.01281 -0.00018 ops/s
Median Throughput range_with_desc_sort 2.01248 2.01233 -0.00016 ops/s
Max Throughput range_with_desc_sort 2.01859 2.01832 -0.00027 ops/s
50th percentile latency range_with_desc_sort 20.9815 20.8552 -0.12634 ms
90th percentile latency range_with_desc_sort 24.5233 24.2809 -0.24236 ms
99th percentile latency range_with_desc_sort 36.9757 25.6184 -11.3574 ms
100th percentile latency range_with_desc_sort 43.5254 25.6269 -17.8984 ms
50th percentile service time range_with_desc_sort 18.7552 18.7078 -0.04742 ms
90th percentile service time range_with_desc_sort 22.5379 22.492 -0.04593 ms
99th percentile service time range_with_desc_sort 34.3877 24.1913 -10.1964 ms
100th percentile service time range_with_desc_sort 40.7632 24.1997 -16.5635 ms
error rate range_with_desc_sort 0 0 0 %

@opensearch-ci-bot

Copy link
Copy Markdown
Contributor
Benchmark Results

Benchmark Results for Job: https://build.ci.opensearch.org/job/benchmark-pull-request/8392/

Metric Task Value Unit
Cumulative indexing time of primary shards 0 min
Min cumulative indexing time across primary shards 0 min
Median cumulative indexing time across primary shards 0 min
Max cumulative indexing time across primary shards 0 min
Cumulative indexing throttle time of primary shards 0 min
Min cumulative indexing throttle time across primary shards 0 min
Median cumulative indexing throttle time across primary shards 0 min
Max cumulative indexing throttle time across primary shards 0 min
Cumulative merge time of primary shards 0 min
Cumulative merge count of primary shards 0
Min cumulative merge time across primary shards 0 min
Median cumulative merge time across primary shards 0 min
Max cumulative merge time across primary shards 0 min
Cumulative merge throttle time of primary shards 0 min
Min cumulative merge throttle time across primary shards 0 min
Median cumulative merge throttle time across primary shards 0 min
Max cumulative merge throttle time across primary shards 0 min
Cumulative refresh time of primary shards 0 min
Cumulative refresh count of primary shards 4
Min cumulative refresh time across primary shards 0 min
Median cumulative refresh time across primary shards 0 min
Max cumulative refresh time across primary shards 0 min
Cumulative flush time of primary shards 0 min
Cumulative flush count of primary shards 1
Min cumulative flush time across primary shards 0 min
Median cumulative flush time across primary shards 0 min
Max cumulative flush time across primary shards 0 min
Total Young Gen GC time 1.693 s
Total Young Gen GC count 27
Total Old Gen GC time 0 s
Total Old Gen GC count 0
Doc count 1.16e+08
Store size 22.0064 GB
Translog size 5.12227e-08 GB
Heap used for segments 0 MB
Heap used for doc values 0 MB
Heap used for terms 0 MB
Heap used for norms 0 MB
Heap used for points 0 MB
Heap used for stored fields 0 MB
Segment count 13
Min Throughput wait-for-snapshot-recovery 4.1851e+07 byte/s
Mean Throughput wait-for-snapshot-recovery 4.1851e+07 byte/s
Median Throughput wait-for-snapshot-recovery 4.1851e+07 byte/s
Max Throughput wait-for-snapshot-recovery 4.1851e+07 byte/s
100th percentile latency wait-for-snapshot-recovery 559301 ms
100th percentile service time wait-for-snapshot-recovery 559301 ms
error rate wait-for-snapshot-recovery 0 %
Min Throughput wait-until-merges-finish 101.04 ops/s
Mean Throughput wait-until-merges-finish 101.04 ops/s
Median Throughput wait-until-merges-finish 101.04 ops/s
Max Throughput wait-until-merges-finish 101.04 ops/s
100th percentile latency wait-until-merges-finish 9.60755 ms
100th percentile service time wait-until-merges-finish 9.60755 ms
error rate wait-until-merges-finish 0 %
Min Throughput default 2.01 ops/s
Mean Throughput default 2.02 ops/s
Median Throughput default 2.01 ops/s
Max Throughput default 2.03 ops/s
50th percentile latency default 7.9002 ms
90th percentile latency default 8.52488 ms
99th percentile latency default 9.908 ms
100th percentile latency default 9.94457 ms
50th percentile service time default 6.56865 ms
90th percentile service time default 7.1013 ms
99th percentile service time default 8.51576 ms
100th percentile service time default 8.77348 ms
error rate default 0 %
Min Throughput desc_sort_timestamp 2.01 ops/s
Mean Throughput desc_sort_timestamp 2.02 ops/s
Median Throughput desc_sort_timestamp 2.01 ops/s
Max Throughput desc_sort_timestamp 2.03 ops/s
50th percentile latency desc_sort_timestamp 10.0199 ms
90th percentile latency desc_sort_timestamp 10.7534 ms
99th percentile latency desc_sort_timestamp 12.9737 ms
100th percentile latency desc_sort_timestamp 13.2642 ms
50th percentile service time desc_sort_timestamp 8.75148 ms
90th percentile service time desc_sort_timestamp 9.2369 ms
99th percentile service time desc_sort_timestamp 11.8247 ms
100th percentile service time desc_sort_timestamp 12.2801 ms
error rate desc_sort_timestamp 0 %
Min Throughput asc_sort_timestamp 2.01 ops/s
Mean Throughput asc_sort_timestamp 2.02 ops/s
Median Throughput asc_sort_timestamp 2.02 ops/s
Max Throughput asc_sort_timestamp 2.04 ops/s
50th percentile latency asc_sort_timestamp 9.0026 ms
90th percentile latency asc_sort_timestamp 9.48647 ms
99th percentile latency asc_sort_timestamp 11.1875 ms
100th percentile latency asc_sort_timestamp 11.2639 ms
50th percentile service time asc_sort_timestamp 7.64259 ms
90th percentile service time asc_sort_timestamp 8.16605 ms
99th percentile service time asc_sort_timestamp 9.71813 ms
100th percentile service time asc_sort_timestamp 9.8194 ms
error rate asc_sort_timestamp 0 %
Min Throughput desc_sort_with_after_timestamp 2.01 ops/s
Mean Throughput desc_sort_with_after_timestamp 2.02 ops/s
Median Throughput desc_sort_with_after_timestamp 2.02 ops/s
Max Throughput desc_sort_with_after_timestamp 2.04 ops/s
50th percentile latency desc_sort_with_after_timestamp 7.21375 ms
90th percentile latency desc_sort_with_after_timestamp 7.58593 ms
99th percentile latency desc_sort_with_after_timestamp 9.00745 ms
100th percentile latency desc_sort_with_after_timestamp 9.59138 ms
50th percentile service time desc_sort_with_after_timestamp 5.83318 ms
90th percentile service time desc_sort_with_after_timestamp 6.14014 ms
99th percentile service time desc_sort_with_after_timestamp 7.49629 ms
100th percentile service time desc_sort_with_after_timestamp 8.18679 ms
error rate desc_sort_with_after_timestamp 0 %
Min Throughput asc_sort_with_after_timestamp 2.01 ops/s
Mean Throughput asc_sort_with_after_timestamp 2.02 ops/s
Median Throughput asc_sort_with_after_timestamp 2.02 ops/s
Max Throughput asc_sort_with_after_timestamp 2.04 ops/s
50th percentile latency asc_sort_with_after_timestamp 7.81329 ms
90th percentile latency asc_sort_with_after_timestamp 8.33027 ms
99th percentile latency asc_sort_with_after_timestamp 9.44656 ms
100th percentile latency asc_sort_with_after_timestamp 9.57159 ms
50th percentile service time asc_sort_with_after_timestamp 6.50915 ms
90th percentile service time asc_sort_with_after_timestamp 6.73519 ms
99th percentile service time asc_sort_with_after_timestamp 7.92305 ms
100th percentile service time asc_sort_with_after_timestamp 7.9704 ms
error rate asc_sort_with_after_timestamp 0 %
Min Throughput desc_sort_timestamp_can_match_shortcut 2.01 ops/s
Mean Throughput desc_sort_timestamp_can_match_shortcut 2.02 ops/s
Median Throughput desc_sort_timestamp_can_match_shortcut 2.01 ops/s
Max Throughput desc_sort_timestamp_can_match_shortcut 2.03 ops/s
50th percentile latency desc_sort_timestamp_can_match_shortcut 8.89859 ms
90th percentile latency desc_sort_timestamp_can_match_shortcut 9.5396 ms
99th percentile latency desc_sort_timestamp_can_match_shortcut 12.0218 ms
100th percentile latency desc_sort_timestamp_can_match_shortcut 13.8266 ms
50th percentile service time desc_sort_timestamp_can_match_shortcut 7.61423 ms
90th percentile service time desc_sort_timestamp_can_match_shortcut 7.94659 ms
99th percentile service time desc_sort_timestamp_can_match_shortcut 10.5398 ms
100th percentile service time desc_sort_timestamp_can_match_shortcut 12.0421 ms
error rate desc_sort_timestamp_can_match_shortcut 0 %
Min Throughput desc_sort_timestamp_no_can_match_shortcut 2.01 ops/s
Mean Throughput desc_sort_timestamp_no_can_match_shortcut 2.02 ops/s
Median Throughput desc_sort_timestamp_no_can_match_shortcut 2.02 ops/s
Max Throughput desc_sort_timestamp_no_can_match_shortcut 2.04 ops/s
50th percentile latency desc_sort_timestamp_no_can_match_shortcut 8.39925 ms
90th percentile latency desc_sort_timestamp_no_can_match_shortcut 8.85756 ms
99th percentile latency desc_sort_timestamp_no_can_match_shortcut 10.1399 ms
100th percentile latency desc_sort_timestamp_no_can_match_shortcut 10.2934 ms
50th percentile service time desc_sort_timestamp_no_can_match_shortcut 7.09735 ms
90th percentile service time desc_sort_timestamp_no_can_match_shortcut 7.36484 ms
99th percentile service time desc_sort_timestamp_no_can_match_shortcut 8.69994 ms
100th percentile service time desc_sort_timestamp_no_can_match_shortcut 8.8166 ms
error rate desc_sort_timestamp_no_can_match_shortcut 0 %
Min Throughput asc_sort_timestamp_can_match_shortcut 2.01 ops/s
Mean Throughput asc_sort_timestamp_can_match_shortcut 2.02 ops/s
Median Throughput asc_sort_timestamp_can_match_shortcut 2.02 ops/s
Max Throughput asc_sort_timestamp_can_match_shortcut 2.04 ops/s
50th percentile latency asc_sort_timestamp_can_match_shortcut 9.65262 ms
90th percentile latency asc_sort_timestamp_can_match_shortcut 10.1382 ms
99th percentile latency asc_sort_timestamp_can_match_shortcut 10.6591 ms
100th percentile latency asc_sort_timestamp_can_match_shortcut 10.6672 ms
50th percentile service time asc_sort_timestamp_can_match_shortcut 8.27422 ms
90th percentile service time asc_sort_timestamp_can_match_shortcut 8.68373 ms
99th percentile service time asc_sort_timestamp_can_match_shortcut 9.52521 ms
100th percentile service time asc_sort_timestamp_can_match_shortcut 9.74298 ms
error rate asc_sort_timestamp_can_match_shortcut 0 %
Min Throughput asc_sort_timestamp_no_can_match_shortcut 2.01 ops/s
Mean Throughput asc_sort_timestamp_no_can_match_shortcut 2.02 ops/s
Median Throughput asc_sort_timestamp_no_can_match_shortcut 2.02 ops/s
Max Throughput asc_sort_timestamp_no_can_match_shortcut 2.04 ops/s
50th percentile latency asc_sort_timestamp_no_can_match_shortcut 9.55678 ms
90th percentile latency asc_sort_timestamp_no_can_match_shortcut 9.98363 ms
99th percentile latency asc_sort_timestamp_no_can_match_shortcut 10.9266 ms
100th percentile latency asc_sort_timestamp_no_can_match_shortcut 11.2025 ms
50th percentile service time asc_sort_timestamp_no_can_match_shortcut 8.21057 ms
90th percentile service time asc_sort_timestamp_no_can_match_shortcut 8.42113 ms
99th percentile service time asc_sort_timestamp_no_can_match_shortcut 9.9804 ms
100th percentile service time asc_sort_timestamp_no_can_match_shortcut 10.2927 ms
error rate asc_sort_timestamp_no_can_match_shortcut 0 %
Min Throughput term 2.01 ops/s
Mean Throughput term 2.02 ops/s
Median Throughput term 2.02 ops/s
Max Throughput term 2.04 ops/s
50th percentile latency term 4.52528 ms
90th percentile latency term 4.90828 ms
99th percentile latency term 5.32718 ms
100th percentile latency term 5.53328 ms
50th percentile service time term 3.18385 ms
90th percentile service time term 3.35193 ms
99th percentile service time term 3.65716 ms
100th percentile service time term 3.79671 ms
error rate term 0 %
Min Throughput multi_terms-keyword 1.32 ops/s
Mean Throughput multi_terms-keyword 1.33 ops/s
Median Throughput multi_terms-keyword 1.33 ops/s
Max Throughput multi_terms-keyword 1.33 ops/s
50th percentile latency multi_terms-keyword 25760.8 ms
90th percentile latency multi_terms-keyword 35834.4 ms
99th percentile latency multi_terms-keyword 38175.7 ms
100th percentile latency multi_terms-keyword 38291.8 ms
50th percentile service time multi_terms-keyword 735.816 ms
90th percentile service time multi_terms-keyword 843.479 ms
99th percentile service time multi_terms-keyword 853.347 ms
100th percentile service time multi_terms-keyword 855.611 ms
error rate multi_terms-keyword 0 %
Min Throughput keyword-terms 2.01 ops/s
Mean Throughput keyword-terms 2.02 ops/s
Median Throughput keyword-terms 2.01 ops/s
Max Throughput keyword-terms 2.03 ops/s
50th percentile latency keyword-terms 11.7292 ms
90th percentile latency keyword-terms 14.9402 ms
99th percentile latency keyword-terms 16.551 ms
100th percentile latency keyword-terms 16.7954 ms
50th percentile service time keyword-terms 10.2522 ms
90th percentile service time keyword-terms 13.536 ms
99th percentile service time keyword-terms 15.2291 ms
100th percentile service time keyword-terms 15.5897 ms
error rate keyword-terms 0 %
Min Throughput keyword-terms-low-cardinality 2.01 ops/s
Mean Throughput keyword-terms-low-cardinality 2.02 ops/s
Median Throughput keyword-terms-low-cardinality 2.02 ops/s
Max Throughput keyword-terms-low-cardinality 2.04 ops/s
50th percentile latency keyword-terms-low-cardinality 7.69545 ms
90th percentile latency keyword-terms-low-cardinality 9.59914 ms
99th percentile latency keyword-terms-low-cardinality 10.1325 ms
100th percentile latency keyword-terms-low-cardinality 10.2964 ms
50th percentile service time keyword-terms-low-cardinality 6.23676 ms
90th percentile service time keyword-terms-low-cardinality 8.11692 ms
99th percentile service time keyword-terms-low-cardinality 8.6303 ms
100th percentile service time keyword-terms-low-cardinality 8.82147 ms
error rate keyword-terms-low-cardinality 0 %
Min Throughput composite-terms 2.01 ops/s
Mean Throughput composite-terms 2.01 ops/s
Median Throughput composite-terms 2.01 ops/s
Max Throughput composite-terms 2.02 ops/s
50th percentile latency composite-terms 168.621 ms
90th percentile latency composite-terms 171.662 ms
99th percentile latency composite-terms 176.891 ms
100th percentile latency composite-terms 177.469 ms
50th percentile service time composite-terms 167.515 ms
90th percentile service time composite-terms 170.406 ms
99th percentile service time composite-terms 175.687 ms
100th percentile service time composite-terms 176.009 ms
error rate composite-terms 0 %
Min Throughput composite_terms-keyword 2 ops/s
Mean Throughput composite_terms-keyword 2.01 ops/s
Median Throughput composite_terms-keyword 2.01 ops/s
Max Throughput composite_terms-keyword 2.01 ops/s
50th percentile latency composite_terms-keyword 327.182 ms
90th percentile latency composite_terms-keyword 332.06 ms
99th percentile latency composite_terms-keyword 349.672 ms
100th percentile latency composite_terms-keyword 358.883 ms
50th percentile service time composite_terms-keyword 325.906 ms
90th percentile service time composite_terms-keyword 331.014 ms
99th percentile service time composite_terms-keyword 348.432 ms
100th percentile service time composite_terms-keyword 357.135 ms
error rate composite_terms-keyword 0 %
Min Throughput composite-date_histogram-daily 2.01 ops/s
Mean Throughput composite-date_histogram-daily 2.02 ops/s
Median Throughput composite-date_histogram-daily 2.02 ops/s
Max Throughput composite-date_histogram-daily 2.04 ops/s
50th percentile latency composite-date_histogram-daily 5.01929 ms
90th percentile latency composite-date_histogram-daily 5.47806 ms
99th percentile latency composite-date_histogram-daily 5.88059 ms
100th percentile latency composite-date_histogram-daily 5.89118 ms
50th percentile service time composite-date_histogram-daily 3.67423 ms
90th percentile service time composite-date_histogram-daily 3.98769 ms
99th percentile service time composite-date_histogram-daily 4.67396 ms
100th percentile service time composite-date_histogram-daily 4.95323 ms
error rate composite-date_histogram-daily 0 %
Min Throughput range 2.01 ops/s
Mean Throughput range 2.02 ops/s
Median Throughput range 2.02 ops/s
Max Throughput range 2.04 ops/s
50th percentile latency range 6.17715 ms
90th percentile latency range 6.61435 ms
99th percentile latency range 25.9711 ms
100th percentile latency range 43.9269 ms
50th percentile service time range 4.82646 ms
90th percentile service time range 5.08293 ms
99th percentile service time range 25.2639 ms
100th percentile service time range 42.9895 ms
error rate range 0 %
Min Throughput range-numeric 2.01 ops/s
Mean Throughput range-numeric 2.02 ops/s
Median Throughput range-numeric 2.02 ops/s
Max Throughput range-numeric 2.04 ops/s
50th percentile latency range-numeric 3.83944 ms
90th percentile latency range-numeric 4.26425 ms
99th percentile latency range-numeric 4.74231 ms
100th percentile latency range-numeric 4.75869 ms
50th percentile service time range-numeric 2.50474 ms
90th percentile service time range-numeric 2.6356 ms
99th percentile service time range-numeric 2.75306 ms
100th percentile service time range-numeric 2.77032 ms
error rate range-numeric 0 %
Min Throughput keyword-in-range 2.01 ops/s
Mean Throughput keyword-in-range 2.02 ops/s
Median Throughput keyword-in-range 2.02 ops/s
Max Throughput keyword-in-range 2.03 ops/s
50th percentile latency keyword-in-range 15.6828 ms
90th percentile latency keyword-in-range 16.4968 ms
99th percentile latency keyword-in-range 39.5585 ms
100th percentile latency keyword-in-range 55.8644 ms
50th percentile service time keyword-in-range 14.3591 ms
90th percentile service time keyword-in-range 15.0666 ms
99th percentile service time keyword-in-range 38.3299 ms
100th percentile service time keyword-in-range 54.3134 ms
error rate keyword-in-range 0 %
Min Throughput date_histogram_hourly_agg 2.01 ops/s
Mean Throughput date_histogram_hourly_agg 2.02 ops/s
Median Throughput date_histogram_hourly_agg 2.02 ops/s
Max Throughput date_histogram_hourly_agg 2.03 ops/s
50th percentile latency date_histogram_hourly_agg 7.55935 ms
90th percentile latency date_histogram_hourly_agg 8.98133 ms
99th percentile latency date_histogram_hourly_agg 9.40144 ms
100th percentile latency date_histogram_hourly_agg 9.46892 ms
50th percentile service time date_histogram_hourly_agg 6.08539 ms
90th percentile service time date_histogram_hourly_agg 7.5351 ms
99th percentile service time date_histogram_hourly_agg 7.71718 ms
100th percentile service time date_histogram_hourly_agg 7.7346 ms
error rate date_histogram_hourly_agg 0 %
Min Throughput date_histogram_minute_agg 2.01 ops/s
Mean Throughput date_histogram_minute_agg 2.02 ops/s
Median Throughput date_histogram_minute_agg 2.02 ops/s
Max Throughput date_histogram_minute_agg 2.03 ops/s
50th percentile latency date_histogram_minute_agg 41.7541 ms
90th percentile latency date_histogram_minute_agg 42.8648 ms
99th percentile latency date_histogram_minute_agg 45.391 ms
100th percentile latency date_histogram_minute_agg 45.8696 ms
50th percentile service time date_histogram_minute_agg 40.3678 ms
90th percentile service time date_histogram_minute_agg 41.4016 ms
99th percentile service time date_histogram_minute_agg 44.0861 ms
100th percentile service time date_histogram_minute_agg 44.2627 ms
error rate date_histogram_minute_agg 0 %
Min Throughput scroll 49.01 pages/s
Mean Throughput scroll 49.44 pages/s
Median Throughput scroll 49.49 pages/s
Max Throughput scroll 49.66 pages/s
50th percentile latency scroll 451.516 ms
90th percentile latency scroll 461.671 ms
99th percentile latency scroll 488.452 ms
100th percentile latency scroll 490.039 ms
50th percentile service time scroll 450.576 ms
90th percentile service time scroll 460.514 ms
99th percentile service time scroll 487.797 ms
100th percentile service time scroll 489.383 ms
error rate scroll 0 %
Min Throughput query-string-on-message 2.01 ops/s
Mean Throughput query-string-on-message 2.02 ops/s
Median Throughput query-string-on-message 2.01 ops/s
Max Throughput query-string-on-message 2.03 ops/s
50th percentile latency query-string-on-message 7.56738 ms
90th percentile latency query-string-on-message 8.23541 ms
99th percentile latency query-string-on-message 9.3466 ms
100th percentile latency query-string-on-message 9.78553 ms
50th percentile service time query-string-on-message 6.20966 ms
90th percentile service time query-string-on-message 6.61724 ms
99th percentile service time query-string-on-message 8.05687 ms
100th percentile service time query-string-on-message 8.10379 ms
error rate query-string-on-message 0 %
Min Throughput query-string-on-message-filtered 2.01 ops/s
Mean Throughput query-string-on-message-filtered 2.02 ops/s
Median Throughput query-string-on-message-filtered 2.02 ops/s
Max Throughput query-string-on-message-filtered 2.04 ops/s
50th percentile latency query-string-on-message-filtered 14.4001 ms
90th percentile latency query-string-on-message-filtered 14.9021 ms
99th percentile latency query-string-on-message-filtered 17.2834 ms
100th percentile latency query-string-on-message-filtered 18.0153 ms
50th percentile service time query-string-on-message-filtered 13.0379 ms
90th percentile service time query-string-on-message-filtered 13.3578 ms
99th percentile service time query-string-on-message-filtered 15.9532 ms
100th percentile service time query-string-on-message-filtered 17.1072 ms
error rate query-string-on-message-filtered 0 %
Min Throughput query-string-on-message-filtered-sorted-num 2.01 ops/s
Mean Throughput query-string-on-message-filtered-sorted-num 2.02 ops/s
Median Throughput query-string-on-message-filtered-sorted-num 2.02 ops/s
Max Throughput query-string-on-message-filtered-sorted-num 2.04 ops/s
50th percentile latency query-string-on-message-filtered-sorted-num 36.3538 ms
90th percentile latency query-string-on-message-filtered-sorted-num 36.7828 ms
99th percentile latency query-string-on-message-filtered-sorted-num 40.316 ms
100th percentile latency query-string-on-message-filtered-sorted-num 43.32 ms
50th percentile service time query-string-on-message-filtered-sorted-num 34.977 ms
90th percentile service time query-string-on-message-filtered-sorted-num 35.3505 ms
99th percentile service time query-string-on-message-filtered-sorted-num 38.924 ms
100th percentile service time query-string-on-message-filtered-sorted-num 41.9877 ms
error rate query-string-on-message-filtered-sorted-num 0 %
Min Throughput sort_keyword_can_match_shortcut 2.01 ops/s
Mean Throughput sort_keyword_can_match_shortcut 2.02 ops/s
Median Throughput sort_keyword_can_match_shortcut 2.02 ops/s
Max Throughput sort_keyword_can_match_shortcut 2.04 ops/s
50th percentile latency sort_keyword_can_match_shortcut 5.65479 ms
90th percentile latency sort_keyword_can_match_shortcut 6.07691 ms
99th percentile latency sort_keyword_can_match_shortcut 6.18655 ms
100th percentile latency sort_keyword_can_match_shortcut 6.18816 ms
50th percentile service time sort_keyword_can_match_shortcut 4.37176 ms
90th percentile service time sort_keyword_can_match_shortcut 4.49364 ms
99th percentile service time sort_keyword_can_match_shortcut 4.67405 ms
100th percentile service time sort_keyword_can_match_shortcut 4.73371 ms
error rate sort_keyword_can_match_shortcut 0 %
Min Throughput sort_keyword_no_can_match_shortcut 2.01 ops/s
Mean Throughput sort_keyword_no_can_match_shortcut 2.02 ops/s
Median Throughput sort_keyword_no_can_match_shortcut 2.02 ops/s
Max Throughput sort_keyword_no_can_match_shortcut 2.04 ops/s
50th percentile latency sort_keyword_no_can_match_shortcut 5.96376 ms
90th percentile latency sort_keyword_no_can_match_shortcut 6.37808 ms
99th percentile latency sort_keyword_no_can_match_shortcut 6.56175 ms
100th percentile latency sort_keyword_no_can_match_shortcut 6.57066 ms
50th percentile service time sort_keyword_no_can_match_shortcut 4.64008 ms
90th percentile service time sort_keyword_no_can_match_shortcut 4.74742 ms
99th percentile service time sort_keyword_no_can_match_shortcut 5.01921 ms
100th percentile service time sort_keyword_no_can_match_shortcut 5.11083 ms
error rate sort_keyword_no_can_match_shortcut 0 %
Min Throughput sort_numeric_desc 2.01 ops/s
Mean Throughput sort_numeric_desc 2.02 ops/s
Median Throughput sort_numeric_desc 2.02 ops/s
Max Throughput sort_numeric_desc 2.03 ops/s
50th percentile latency sort_numeric_desc 6.3546 ms
90th percentile latency sort_numeric_desc 6.73731 ms
99th percentile latency sort_numeric_desc 7.63817 ms
100th percentile latency sort_numeric_desc 7.76159 ms
50th percentile service time sort_numeric_desc 5.04064 ms
90th percentile service time sort_numeric_desc 5.14279 ms
99th percentile service time sort_numeric_desc 5.9744 ms
100th percentile service time sort_numeric_desc 6.06057 ms
error rate sort_numeric_desc 0 %
Min Throughput sort_numeric_asc 2.01 ops/s
Mean Throughput sort_numeric_asc 2.02 ops/s
Median Throughput sort_numeric_asc 2.02 ops/s
Max Throughput sort_numeric_asc 2.04 ops/s
50th percentile latency sort_numeric_asc 5.67069 ms
90th percentile latency sort_numeric_asc 6.09277 ms
99th percentile latency sort_numeric_asc 6.68605 ms
100th percentile latency sort_numeric_asc 6.76963 ms
50th percentile service time sort_numeric_asc 4.29469 ms
90th percentile service time sort_numeric_asc 4.46608 ms
99th percentile service time sort_numeric_asc 5.05936 ms
100th percentile service time sort_numeric_asc 5.10757 ms
error rate sort_numeric_asc 0 %
Min Throughput sort_numeric_desc_with_match 2.01 ops/s
Mean Throughput sort_numeric_desc_with_match 2.02 ops/s
Median Throughput sort_numeric_desc_with_match 2.02 ops/s
Max Throughput sort_numeric_desc_with_match 2.04 ops/s
50th percentile latency sort_numeric_desc_with_match 3.69676 ms
90th percentile latency sort_numeric_desc_with_match 4.12214 ms
99th percentile latency sort_numeric_desc_with_match 4.23445 ms
100th percentile latency sort_numeric_desc_with_match 4.24286 ms
50th percentile service time sort_numeric_desc_with_match 2.40756 ms
90th percentile service time sort_numeric_desc_with_match 2.50308 ms
99th percentile service time sort_numeric_desc_with_match 2.6012 ms
100th percentile service time sort_numeric_desc_with_match 2.62842 ms
error rate sort_numeric_desc_with_match 0 %
Min Throughput sort_numeric_asc_with_match 2.01 ops/s
Mean Throughput sort_numeric_asc_with_match 2.02 ops/s
Median Throughput sort_numeric_asc_with_match 2.02 ops/s
Max Throughput sort_numeric_asc_with_match 2.04 ops/s
50th percentile latency sort_numeric_asc_with_match 3.97683 ms
90th percentile latency sort_numeric_asc_with_match 4.38194 ms
99th percentile latency sort_numeric_asc_with_match 4.5531 ms
100th percentile latency sort_numeric_asc_with_match 4.58102 ms
50th percentile service time sort_numeric_asc_with_match 2.64286 ms
90th percentile service time sort_numeric_asc_with_match 2.76291 ms
99th percentile service time sort_numeric_asc_with_match 3.19681 ms
100th percentile service time sort_numeric_asc_with_match 3.33587 ms
error rate sort_numeric_asc_with_match 0 %
Min Throughput range_field_conjunction_big_range_big_term_query 2.01 ops/s
Mean Throughput range_field_conjunction_big_range_big_term_query 2.02 ops/s
Median Throughput range_field_conjunction_big_range_big_term_query 2.02 ops/s
Max Throughput range_field_conjunction_big_range_big_term_query 2.04 ops/s
50th percentile latency range_field_conjunction_big_range_big_term_query 3.53922 ms
90th percentile latency range_field_conjunction_big_range_big_term_query 4.01627 ms
99th percentile latency range_field_conjunction_big_range_big_term_query 4.20404 ms
100th percentile latency range_field_conjunction_big_range_big_term_query 4.24813 ms
50th percentile service time range_field_conjunction_big_range_big_term_query 2.32909 ms
90th percentile service time range_field_conjunction_big_range_big_term_query 2.44306 ms
99th percentile service time range_field_conjunction_big_range_big_term_query 2.60251 ms
100th percentile service time range_field_conjunction_big_range_big_term_query 2.62765 ms
error rate range_field_conjunction_big_range_big_term_query 0 %
Min Throughput range_field_disjunction_big_range_small_term_query 2.01 ops/s
Mean Throughput range_field_disjunction_big_range_small_term_query 2.02 ops/s
Median Throughput range_field_disjunction_big_range_small_term_query 2.02 ops/s
Max Throughput range_field_disjunction_big_range_small_term_query 2.04 ops/s
50th percentile latency range_field_disjunction_big_range_small_term_query 3.69382 ms
90th percentile latency range_field_disjunction_big_range_small_term_query 4.11685 ms
99th percentile latency range_field_disjunction_big_range_small_term_query 4.90221 ms
100th percentile latency range_field_disjunction_big_range_small_term_query 5.0745 ms
50th percentile service time range_field_disjunction_big_range_small_term_query 2.35962 ms
90th percentile service time range_field_disjunction_big_range_small_term_query 2.46099 ms
99th percentile service time range_field_disjunction_big_range_small_term_query 3.1099 ms
100th percentile service time range_field_disjunction_big_range_small_term_query 3.60178 ms
error rate range_field_disjunction_big_range_small_term_query 0 %
Min Throughput range_field_conjunction_small_range_small_term_query 2.01 ops/s
Mean Throughput range_field_conjunction_small_range_small_term_query 2.02 ops/s
Median Throughput range_field_conjunction_small_range_small_term_query 2.02 ops/s
Max Throughput range_field_conjunction_small_range_small_term_query 2.04 ops/s
50th percentile latency range_field_conjunction_small_range_small_term_query 3.67595 ms
90th percentile latency range_field_conjunction_small_range_small_term_query 4.10621 ms
99th percentile latency range_field_conjunction_small_range_small_term_query 4.21214 ms
100th percentile latency range_field_conjunction_small_range_small_term_query 4.24076 ms
50th percentile service time range_field_conjunction_small_range_small_term_query 2.35088 ms
90th percentile service time range_field_conjunction_small_range_small_term_query 2.43858 ms
99th percentile service time range_field_conjunction_small_range_small_term_query 2.5517 ms
100th percentile service time range_field_conjunction_small_range_small_term_query 2.5693 ms
error rate range_field_conjunction_small_range_small_term_query 0 %
Min Throughput range_field_conjunction_small_range_big_term_query 2.01 ops/s
Mean Throughput range_field_conjunction_small_range_big_term_query 2.02 ops/s
Median Throughput range_field_conjunction_small_range_big_term_query 2.02 ops/s
Max Throughput range_field_conjunction_small_range_big_term_query 2.04 ops/s
50th percentile latency range_field_conjunction_small_range_big_term_query 3.77915 ms
90th percentile latency range_field_conjunction_small_range_big_term_query 4.18977 ms
99th percentile latency range_field_conjunction_small_range_big_term_query 4.45538 ms
100th percentile latency range_field_conjunction_small_range_big_term_query 4.51529 ms
50th percentile service time range_field_conjunction_small_range_big_term_query 2.52339 ms
90th percentile service time range_field_conjunction_small_range_big_term_query 2.6133 ms
99th percentile service time range_field_conjunction_small_range_big_term_query 2.84929 ms
100th percentile service time range_field_conjunction_small_range_big_term_query 2.91301 ms
error rate range_field_conjunction_small_range_big_term_query 0 %
Min Throughput range-auto-date-histo 1.96 ops/s
Mean Throughput range-auto-date-histo 1.98 ops/s
Median Throughput range-auto-date-histo 1.98 ops/s
Max Throughput range-auto-date-histo 1.99 ops/s
50th percentile latency range-auto-date-histo 347.888 ms
90th percentile latency range-auto-date-histo 365.672 ms
99th percentile latency range-auto-date-histo 395.813 ms
100th percentile latency range-auto-date-histo 417.367 ms
50th percentile service time range-auto-date-histo 346.966 ms
90th percentile service time range-auto-date-histo 364.945 ms
99th percentile service time range-auto-date-histo 395.143 ms
100th percentile service time range-auto-date-histo 416.739 ms
error rate range-auto-date-histo 0 %
Min Throughput range-with-metrics 0.13 ops/s
Mean Throughput range-with-metrics 0.13 ops/s
Median Throughput range-with-metrics 0.13 ops/s
Max Throughput range-with-metrics 0.13 ops/s
50th percentile latency range-with-metrics 723569 ms
90th percentile latency range-with-metrics 1.01006e+06 ms
99th percentile latency range-with-metrics 1.07422e+06 ms
100th percentile latency range-with-metrics 1.07779e+06 ms
50th percentile service time range-with-metrics 7672.84 ms
90th percentile service time range-with-metrics 7751.42 ms
99th percentile service time range-with-metrics 7810.93 ms
100th percentile service time range-with-metrics 7826.6 ms
error rate range-with-metrics 0 %
Min Throughput range-auto-date-histo-with-metrics 0.14 ops/s
Mean Throughput range-auto-date-histo-with-metrics 0.14 ops/s
Median Throughput range-auto-date-histo-with-metrics 0.14 ops/s
Max Throughput range-auto-date-histo-with-metrics 0.14 ops/s
50th percentile latency range-auto-date-histo-with-metrics 659765 ms
90th percentile latency range-auto-date-histo-with-metrics 923038 ms
99th percentile latency range-auto-date-histo-with-metrics 982063 ms
100th percentile latency range-auto-date-histo-with-metrics 985333 ms
50th percentile service time range-auto-date-histo-with-metrics 7052.57 ms
90th percentile service time range-auto-date-histo-with-metrics 7149.46 ms
99th percentile service time range-auto-date-histo-with-metrics 7437.21 ms
100th percentile service time range-auto-date-histo-with-metrics 7649.62 ms
error rate range-auto-date-histo-with-metrics 0 %
Min Throughput range-agg-1 2.01 ops/s
Mean Throughput range-agg-1 2.02 ops/s
Median Throughput range-agg-1 2.02 ops/s
Max Throughput range-agg-1 2.04 ops/s
50th percentile latency range-agg-1 4.07219 ms
90th percentile latency range-agg-1 4.42224 ms
99th percentile latency range-agg-1 4.63537 ms
100th percentile latency range-agg-1 4.69235 ms
50th percentile service time range-agg-1 2.72545 ms
90th percentile service time range-agg-1 2.82856 ms
99th percentile service time range-agg-1 2.92517 ms
100th percentile service time range-agg-1 2.92826 ms
error rate range-agg-1 0 %
Min Throughput range-agg-2 2.01 ops/s
Mean Throughput range-agg-2 2.02 ops/s
Median Throughput range-agg-2 2.02 ops/s
Max Throughput range-agg-2 2.04 ops/s
50th percentile latency range-agg-2 4.21739 ms
90th percentile latency range-agg-2 4.66103 ms
99th percentile latency range-agg-2 4.7731 ms
100th percentile latency range-agg-2 4.77774 ms
50th percentile service time range-agg-2 2.9616 ms
90th percentile service time range-agg-2 3.06462 ms
99th percentile service time range-agg-2 3.24994 ms
100th percentile service time range-agg-2 3.32155 ms
error rate range-agg-2 0 %
Min Throughput cardinality-agg-low 2.01 ops/s
Mean Throughput cardinality-agg-low 2.02 ops/s
Median Throughput cardinality-agg-low 2.01 ops/s
Max Throughput cardinality-agg-low 2.03 ops/s
50th percentile latency cardinality-agg-low 5.18444 ms
90th percentile latency cardinality-agg-low 5.75176 ms
99th percentile latency cardinality-agg-low 6.55548 ms
100th percentile latency cardinality-agg-low 6.97244 ms
50th percentile service time cardinality-agg-low 3.81153 ms
90th percentile service time cardinality-agg-low 4.29299 ms
99th percentile service time cardinality-agg-low 5.10251 ms
100th percentile service time cardinality-agg-low 5.46538 ms
error rate cardinality-agg-low 0 %
Min Throughput cardinality-agg-high 1.06 ops/s
Mean Throughput cardinality-agg-high 1.07 ops/s
Median Throughput cardinality-agg-high 1.07 ops/s
Max Throughput cardinality-agg-high 1.1 ops/s
50th percentile latency cardinality-agg-high 44509.7 ms
90th percentile latency cardinality-agg-high 62942.7 ms
99th percentile latency cardinality-agg-high 67113.8 ms
100th percentile latency cardinality-agg-high 67351.2 ms
50th percentile service time cardinality-agg-high 950.901 ms
90th percentile service time cardinality-agg-high 998.063 ms
99th percentile service time cardinality-agg-high 1072.84 ms
100th percentile service time cardinality-agg-high 1115.02 ms
error rate cardinality-agg-high 0 %
Min Throughput cardinality-agg-very-high 0.84 ops/s
Mean Throughput cardinality-agg-very-high 0.84 ops/s
Median Throughput cardinality-agg-very-high 0.84 ops/s
Max Throughput cardinality-agg-very-high 0.84 ops/s
50th percentile latency cardinality-agg-very-high 69296.1 ms
90th percentile latency cardinality-agg-very-high 96968.4 ms
99th percentile latency cardinality-agg-very-high 103084 ms
100th percentile latency cardinality-agg-very-high 103421 ms
50th percentile service time cardinality-agg-very-high 1176.75 ms
90th percentile service time cardinality-agg-very-high 1204.86 ms
99th percentile service time cardinality-agg-very-high 1317.81 ms
100th percentile service time cardinality-agg-very-high 1381.96 ms
error rate cardinality-agg-very-high 0 %
Min Throughput range_with_asc_sort 2.01 ops/s
Mean Throughput range_with_asc_sort 2.02 ops/s
Median Throughput range_with_asc_sort 2.02 ops/s
Max Throughput range_with_asc_sort 2.04 ops/s
50th percentile latency range_with_asc_sort 8.05346 ms
90th percentile latency range_with_asc_sort 8.45526 ms
99th percentile latency range_with_asc_sort 9.73597 ms
100th percentile latency range_with_asc_sort 10.2965 ms
50th percentile service time range_with_asc_sort 6.72889 ms
90th percentile service time range_with_asc_sort 6.85039 ms
99th percentile service time range_with_asc_sort 8.519 ms
100th percentile service time range_with_asc_sort 8.62304 ms
error rate range_with_asc_sort 0 %
Min Throughput range_with_desc_sort 2.01 ops/s
Mean Throughput range_with_desc_sort 2.02 ops/s
Median Throughput range_with_desc_sort 2.02 ops/s
Max Throughput range_with_desc_sort 2.04 ops/s
50th percentile latency range_with_desc_sort 7.78396 ms
90th percentile latency range_with_desc_sort 8.19875 ms
99th percentile latency range_with_desc_sort 10.0414 ms
100th percentile latency range_with_desc_sort 10.4754 ms
50th percentile service time range_with_desc_sort 6.42414 ms
90th percentile service time range_with_desc_sort 6.54631 ms
99th percentile service time range_with_desc_sort 9.00792 ms
100th percentile service time range_with_desc_sort 9.31296 ms
error rate range_with_desc_sort 0 %

@opensearch-ci-bot

Copy link
Copy Markdown
Contributor
Benchmark Baseline Comparison Results

Benchmark Results for Job: https://build.ci.opensearch.org/job/benchmark-compare/294/

Metric Task Baseline Contender Diff Unit
Cumulative indexing time of primary shards 0 0 0 min
Min cumulative indexing time across primary shard 0 0 0 min
Median cumulative indexing time across primary shard 0 0 0 min
Max cumulative indexing time across primary shard 0 0 0 min
Cumulative indexing throttle time of primary shards 0 0 0 min
Min cumulative indexing throttle time across primary shard 0 0 0 min
Median cumulative indexing throttle time across primary shard 0 0 0 min
Max cumulative indexing throttle time across primary shard 0 0 0 min
Cumulative merge time of primary shards 0 0 0 min
Cumulative merge count of primary shards 0 0 0
Min cumulative merge time across primary shard 0 0 0 min
Median cumulative merge time across primary shard 0 0 0 min
Max cumulative merge time across primary shard 0 0 0 min
Cumulative merge throttle time of primary shards 0 0 0 min
Min cumulative merge throttle time across primary shard 0 0 0 min
Median cumulative merge throttle time across primary shard 0 0 0 min
Max cumulative merge throttle time across primary shard 0 0 0 min
Cumulative refresh time of primary shards 0 0 0 min
Cumulative refresh count of primary shards 4 4 0
Min cumulative refresh time across primary shard 0 0 0 min
Median cumulative refresh time across primary shard 0 0 0 min
Max cumulative refresh time across primary shard 0 0 0 min
Cumulative flush time of primary shards 0 0 0 min
Cumulative flush count of primary shards 1 1 0
Min cumulative flush time across primary shard 0 0 0 min
Median cumulative flush time across primary shard 0 0 0 min
Max cumulative flush time across primary shard 0 0 0 min
Total Young Gen GC time 1.745 1.693 -0.052 s
Total Young Gen GC count 26 27 1
Total Old Gen GC time 0 0 0 s
Total Old Gen GC count 0 0 0
Store size 22.0064 22.0064 0 GB
Translog size 5.12227e-08 5.12227e-08 0 GB
Heap used for segments 0 0 0 MB
Heap used for doc values 0 0 0 MB
Heap used for terms 0 0 0 MB
Heap used for norms 0 0 0 MB
Heap used for points 0 0 0 MB
Heap used for stored fields 0 0 0 MB
Segment count 13 13 0
Min Throughput wait-for-snapshot-recovery 4.17985e+07 4.1851e+07 52560 byte/s
Mean Throughput wait-for-snapshot-recovery 4.17985e+07 4.1851e+07 52560 byte/s
Median Throughput wait-for-snapshot-recovery 4.17985e+07 4.1851e+07 52560 byte/s
Max Throughput wait-for-snapshot-recovery 4.17985e+07 4.1851e+07 52560 byte/s
100th percentile latency wait-for-snapshot-recovery 560320 559301 -1018.31 ms
100th percentile service time wait-for-snapshot-recovery 560320 559301 -1018.31 ms
error rate wait-for-snapshot-recovery 0 0 0 %
Min Throughput wait-until-merges-finish 105.887 101.036 -4.85143 ops/s
Mean Throughput wait-until-merges-finish 105.887 101.036 -4.85143 ops/s
Median Throughput wait-until-merges-finish 105.887 101.036 -4.85143 ops/s
Max Throughput wait-until-merges-finish 105.887 101.036 -4.85143 ops/s
100th percentile latency wait-until-merges-finish 9.14549 9.60755 0.46207 ms
100th percentile service time wait-until-merges-finish 9.14549 9.60755 0.46207 ms
error rate wait-until-merges-finish 0 0 0 %
Min Throughput default 2.00985 2.00931 -0.00054 ops/s
Mean Throughput default 2.01617 2.01531 -0.00086 ops/s
Median Throughput default 2.01471 2.0139 -0.00081 ops/s
Max Throughput default 2.02903 2.02749 -0.00154 ops/s
50th percentile latency default 7.35219 7.9002 0.54801 ms
90th percentile latency default 7.98035 8.52488 0.54452 ms
99th percentile latency default 9.37829 9.908 0.52971 ms
100th percentile latency default 10.1078 9.94457 -0.16319 ms
50th percentile service time default 6.05303 6.56865 0.51563 ms
90th percentile service time default 6.5619 7.1013 0.5394 ms
99th percentile service time default 7.71363 8.51576 0.80212 ms
100th percentile service time default 8.42727 8.77348 0.34621 ms
error rate default 0 0 0 %
Min Throughput desc_sort_timestamp 2.01 2.00934 -0.00066 ops/s
Mean Throughput desc_sort_timestamp 2.01645 2.01533 -0.00112 ops/s
Median Throughput desc_sort_timestamp 2.01497 2.01392 -0.00104 ops/s
Max Throughput desc_sort_timestamp 2.02951 2.02752 -0.002 ops/s
50th percentile latency desc_sort_timestamp 9.59642 10.0199 0.42353 ms
90th percentile latency desc_sort_timestamp 10.8336 10.7534 -0.08021 ms
99th percentile latency desc_sort_timestamp 12.2733 12.9737 0.7004 ms
100th percentile latency desc_sort_timestamp 12.4192 13.2642 0.84505 ms
50th percentile service time desc_sort_timestamp 8.19616 8.75148 0.55533 ms
90th percentile service time desc_sort_timestamp 9.59235 9.2369 -0.35545 ms
99th percentile service time desc_sort_timestamp 10.7757 11.8247 1.04902 ms
100th percentile service time desc_sort_timestamp 10.9907 12.2801 1.28933 ms
error rate desc_sort_timestamp 0 0 0 %
Min Throughput asc_sort_timestamp 2.01265 2.0127 5e-05 ops/s
Mean Throughput asc_sort_timestamp 2.02083 2.02088 5e-05 ops/s
Median Throughput asc_sort_timestamp 2.01892 2.01897 5e-05 ops/s
Max Throughput asc_sort_timestamp 2.03746 2.03751 5e-05 ops/s
50th percentile latency asc_sort_timestamp 8.9368 9.0026 0.06581 ms
90th percentile latency asc_sort_timestamp 9.81544 9.48647 -0.32896 ms
99th percentile latency asc_sort_timestamp 39.2184 11.1875 -28.0309 ms
100th percentile latency asc_sort_timestamp 65.9332 11.2639 -54.6694 ms
50th percentile service time asc_sort_timestamp 7.59288 7.64259 0.04971 ms
90th percentile service time asc_sort_timestamp 8.51366 8.16605 -0.34761 ms
99th percentile service time asc_sort_timestamp 37.9626 9.71813 -28.2445 ms
100th percentile service time asc_sort_timestamp 64.3036 9.8194 -54.4842 ms
error rate asc_sort_timestamp 0 0 0 %
Min Throughput desc_sort_with_after_timestamp 2.01277 2.01276 -1e-05 ops/s
Mean Throughput desc_sort_with_after_timestamp 2.021 2.02098 -2e-05 ops/s
Median Throughput desc_sort_with_after_timestamp 2.01907 2.01906 -1e-05 ops/s
Max Throughput desc_sort_with_after_timestamp 2.03778 2.03769 -9e-05 ops/s
50th percentile latency desc_sort_with_after_timestamp 7.09409 7.21375 0.11966 ms
90th percentile latency desc_sort_with_after_timestamp 7.62112 7.58593 -0.03519 ms
99th percentile latency desc_sort_with_after_timestamp 8.98978 9.00745 0.01766 ms
100th percentile latency desc_sort_with_after_timestamp 9.88435 9.59138 -0.29297 ms
50th percentile service time desc_sort_with_after_timestamp 5.78593 5.83318 0.04725 ms
90th percentile service time desc_sort_with_after_timestamp 6.11528 6.14014 0.02485 ms
99th percentile service time desc_sort_with_after_timestamp 7.69204 7.49629 -0.19575 ms
100th percentile service time desc_sort_with_after_timestamp 8.86094 8.18679 -0.67415 ms
error rate desc_sort_with_after_timestamp 0 0 0 %
Min Throughput asc_sort_with_after_timestamp 2.01315 2.01313 -2e-05 ops/s
Mean Throughput asc_sort_with_after_timestamp 2.02166 2.02159 -7e-05 ops/s
Median Throughput asc_sort_with_after_timestamp 2.01969 2.01962 -7e-05 ops/s
Max Throughput asc_sort_with_after_timestamp 2.03895 2.03882 -0.00013 ops/s
50th percentile latency asc_sort_with_after_timestamp 7.18289 7.81329 0.63039 ms
90th percentile latency asc_sort_with_after_timestamp 7.72606 8.33027 0.60421 ms
99th percentile latency asc_sort_with_after_timestamp 8.82924 9.44656 0.61733 ms
100th percentile latency asc_sort_with_after_timestamp 9.17995 9.57159 0.39164 ms
50th percentile service time asc_sort_with_after_timestamp 5.96188 6.50915 0.54726 ms
90th percentile service time asc_sort_with_after_timestamp 6.23556 6.73519 0.49963 ms
99th percentile service time asc_sort_with_after_timestamp 7.35856 7.92305 0.56449 ms
100th percentile service time asc_sort_with_after_timestamp 7.66759 7.9704 0.3028 ms
error rate asc_sort_with_after_timestamp 0 0 0 %
Min Throughput desc_sort_timestamp_can_match_shortcut 2.01012 2.00975 -0.00037 ops/s
Mean Throughput desc_sort_timestamp_can_match_shortcut 2.01663 2.016 -0.00063 ops/s
Median Throughput desc_sort_timestamp_can_match_shortcut 2.01511 2.01455 -0.00056 ops/s
Max Throughput desc_sort_timestamp_can_match_shortcut 2.02984 2.02873 -0.00112 ops/s
50th percentile latency desc_sort_timestamp_can_match_shortcut 8.63686 8.89859 0.26173 ms
90th percentile latency desc_sort_timestamp_can_match_shortcut 9.2317 9.5396 0.3079 ms
99th percentile latency desc_sort_timestamp_can_match_shortcut 11.0661 12.0218 0.95569 ms
100th percentile latency desc_sort_timestamp_can_match_shortcut 11.2341 13.8266 2.59245 ms
50th percentile service time desc_sort_timestamp_can_match_shortcut 7.25583 7.61423 0.3584 ms
90th percentile service time desc_sort_timestamp_can_match_shortcut 7.7764 7.94659 0.17019 ms
99th percentile service time desc_sort_timestamp_can_match_shortcut 9.56976 10.5398 0.97005 ms
100th percentile service time desc_sort_timestamp_can_match_shortcut 9.86384 12.0421 2.1783 ms
error rate desc_sort_timestamp_can_match_shortcut 0 0 0 %
Min Throughput desc_sort_timestamp_no_can_match_shortcut 2.01316 2.01313 -3e-05 ops/s
Mean Throughput desc_sort_timestamp_no_can_match_shortcut 2.02164 2.02162 -2e-05 ops/s
Median Throughput desc_sort_timestamp_no_can_match_shortcut 2.01965 2.01965 1e-05 ops/s
Max Throughput desc_sort_timestamp_no_can_match_shortcut 2.03892 2.03887 -5e-05 ops/s
50th percentile latency desc_sort_timestamp_no_can_match_shortcut 8.22799 8.39925 0.17126 ms
90th percentile latency desc_sort_timestamp_no_can_match_shortcut 8.7446 8.85756 0.11295 ms
99th percentile latency desc_sort_timestamp_no_can_match_shortcut 10.8879 10.1399 -0.74802 ms
100th percentile latency desc_sort_timestamp_no_can_match_shortcut 11.1895 10.2934 -0.89603 ms
50th percentile service time desc_sort_timestamp_no_can_match_shortcut 6.93592 7.09735 0.16143 ms
90th percentile service time desc_sort_timestamp_no_can_match_shortcut 7.26773 7.36484 0.09711 ms
99th percentile service time desc_sort_timestamp_no_can_match_shortcut 9.35936 8.69994 -0.65942 ms
100th percentile service time desc_sort_timestamp_no_can_match_shortcut 9.48143 8.8166 -0.66483 ms
error rate desc_sort_timestamp_no_can_match_shortcut 0 0 0 %
Min Throughput asc_sort_timestamp_can_match_shortcut 2.01307 2.01309 2e-05 ops/s
Mean Throughput asc_sort_timestamp_can_match_shortcut 2.02151 2.02153 2e-05 ops/s
Median Throughput asc_sort_timestamp_can_match_shortcut 2.01952 2.01955 3e-05 ops/s
Max Throughput asc_sort_timestamp_can_match_shortcut 2.03864 2.03871 7e-05 ops/s
50th percentile latency asc_sort_timestamp_can_match_shortcut 9.61035 9.65262 0.04227 ms
90th percentile latency asc_sort_timestamp_can_match_shortcut 10.063 10.1382 0.07516 ms
99th percentile latency asc_sort_timestamp_can_match_shortcut 11.1543 10.6591 -0.49522 ms
100th percentile latency asc_sort_timestamp_can_match_shortcut 11.7161 10.6672 -1.04887 ms
50th percentile service time asc_sort_timestamp_can_match_shortcut 8.24265 8.27422 0.03157 ms
90th percentile service time asc_sort_timestamp_can_match_shortcut 8.51194 8.68373 0.17179 ms
99th percentile service time asc_sort_timestamp_can_match_shortcut 9.86303 9.52521 -0.33783 ms
100th percentile service time asc_sort_timestamp_can_match_shortcut 10.335 9.74298 -0.59198 ms
error rate asc_sort_timestamp_can_match_shortcut 0 0 0 %
Min Throughput asc_sort_timestamp_no_can_match_shortcut 2.01312 2.01311 -0 ops/s
Mean Throughput asc_sort_timestamp_no_can_match_shortcut 2.02157 2.0216 3e-05 ops/s
Median Throughput asc_sort_timestamp_no_can_match_shortcut 2.01959 2.01963 3e-05 ops/s
Max Throughput asc_sort_timestamp_no_can_match_shortcut 2.03879 2.03883 5e-05 ops/s
50th percentile latency asc_sort_timestamp_no_can_match_shortcut 9.5086 9.55678 0.04819 ms
90th percentile latency asc_sort_timestamp_no_can_match_shortcut 9.92357 9.98363 0.06005 ms
99th percentile latency asc_sort_timestamp_no_can_match_shortcut 10.823 10.9266 0.10362 ms
100th percentile latency asc_sort_timestamp_no_can_match_shortcut 11.0808 11.2025 0.12174 ms
50th percentile service time asc_sort_timestamp_no_can_match_shortcut 8.19584 8.21057 0.01473 ms
90th percentile service time asc_sort_timestamp_no_can_match_shortcut 8.39957 8.42113 0.02156 ms
99th percentile service time asc_sort_timestamp_no_can_match_shortcut 9.6157 9.9804 0.3647 ms
100th percentile service time asc_sort_timestamp_no_can_match_shortcut 10.1463 10.2927 0.14639 ms
error rate asc_sort_timestamp_no_can_match_shortcut 0 0 0 %
Min Throughput term 2.01295 2.01292 -3e-05 ops/s
Mean Throughput term 2.02132 2.02125 -8e-05 ops/s
Median Throughput term 2.01938 2.0193 -7e-05 ops/s
Max Throughput term 2.03835 2.03818 -0.00017 ops/s
50th percentile latency term 4.48055 4.52528 0.04473 ms
90th percentile latency term 4.88329 4.90828 0.02499 ms
99th percentile latency term 5.06657 5.32718 0.26061 ms
100th percentile latency term 5.12132 5.53328 0.41196 ms
50th percentile service time term 3.1397 3.18385 0.04415 ms
90th percentile service time term 3.32369 3.35193 0.02824 ms
99th percentile service time term 3.56536 3.65716 0.09181 ms
100th percentile service time term 3.60721 3.79671 0.1895 ms
error rate term 0 0 0 %
Min Throughput multi_terms-keyword 1.33015 1.32201 -0.00814 ops/s
Mean Throughput multi_terms-keyword 1.33804 1.32534 -0.0127 ops/s
Median Throughput multi_terms-keyword 1.33841 1.32535 -0.01305 ops/s
Max Throughput multi_terms-keyword 1.34314 1.32887 -0.01427 ops/s
50th percentile latency multi_terms-keyword 24977.4 25760.8 783.407 ms
90th percentile latency multi_terms-keyword 34613.7 35834.4 1220.62 ms
99th percentile latency multi_terms-keyword 36702.8 38175.7 1472.92 ms
100th percentile latency multi_terms-keyword 36817.2 38291.8 1474.62 ms
50th percentile service time multi_terms-keyword 730.283 735.816 5.5332 ms
90th percentile service time multi_terms-keyword 768.603 843.479 74.8755 ms
99th percentile service time multi_terms-keyword 824.447 853.347 28.9009 ms
100th percentile service time multi_terms-keyword 840.266 855.611 15.3451 ms
error rate multi_terms-keyword 0 0 0 %
Min Throughput keyword-terms 2.00983 2.00962 -0.00021 ops/s
Mean Throughput keyword-terms 2.01616 2.01579 -0.00036 ops/s
Median Throughput keyword-terms 2.01468 2.01436 -0.00033 ops/s
Max Throughput keyword-terms 2.02899 2.02836 -0.00063 ops/s
50th percentile latency keyword-terms 11.5863 11.7292 0.14292 ms
90th percentile latency keyword-terms 14.5887 14.9402 0.35155 ms
99th percentile latency keyword-terms 16.4488 16.551 0.10222 ms
100th percentile latency keyword-terms 16.5759 16.7954 0.21953 ms
50th percentile service time keyword-terms 10.0915 10.2522 0.16065 ms
90th percentile service time keyword-terms 13.1075 13.536 0.4285 ms
99th percentile service time keyword-terms 14.9999 15.2291 0.22914 ms
100th percentile service time keyword-terms 15.0824 15.5897 0.50722 ms
error rate keyword-terms 0 0 0 %
Min Throughput keyword-terms-low-cardinality 2.01314 2.01317 3e-05 ops/s
Mean Throughput keyword-terms-low-cardinality 2.02164 2.02169 5e-05 ops/s
Median Throughput keyword-terms-low-cardinality 2.01966 2.01971 5e-05 ops/s
Max Throughput keyword-terms-low-cardinality 2.0389 2.039 0.0001 ops/s
50th percentile latency keyword-terms-low-cardinality 7.9328 7.69545 -0.23736 ms
90th percentile latency keyword-terms-low-cardinality 9.84553 9.59914 -0.24639 ms
99th percentile latency keyword-terms-low-cardinality 10.0533 10.1325 0.07924 ms
100th percentile latency keyword-terms-low-cardinality 10.0674 10.2964 0.22893 ms
50th percentile service time keyword-terms-low-cardinality 6.39487 6.23676 -0.15811 ms
90th percentile service time keyword-terms-low-cardinality 8.37355 8.11692 -0.25663 ms
99th percentile service time keyword-terms-low-cardinality 8.71626 8.6303 -0.08595 ms
100th percentile service time keyword-terms-low-cardinality 8.77538 8.82147 0.04609 ms
error rate keyword-terms-low-cardinality 0 0 0 %
Min Throughput composite-terms 2.00481 2.00516 0.00035 ops/s
Mean Throughput composite-terms 2.0079 2.00847 0.00056 ops/s
Median Throughput composite-terms 2.0072 2.00768 0.00048 ops/s
Max Throughput composite-terms 2.01412 2.01517 0.00106 ops/s
50th percentile latency composite-terms 167.703 168.621 0.91805 ms
90th percentile latency composite-terms 171.689 171.662 -0.02734 ms
99th percentile latency composite-terms 177.41 176.891 -0.51885 ms
100th percentile latency composite-terms 178.09 177.469 -0.62024 ms
50th percentile service time composite-terms 166.371 167.515 1.14447 ms
90th percentile service time composite-terms 170.452 170.406 -0.04535 ms
99th percentile service time composite-terms 176.23 175.687 -0.54272 ms
100th percentile service time composite-terms 177.112 176.009 -1.10243 ms
error rate composite-terms 0 0 0 %
Min Throughput composite_terms-keyword 2.00365 2.00427 0.00062 ops/s
Mean Throughput composite_terms-keyword 2.006 2.00702 0.00103 ops/s
Median Throughput composite_terms-keyword 2.00547 2.00639 0.00092 ops/s
Max Throughput composite_terms-keyword 2.01074 2.01251 0.00177 ops/s
50th percentile latency composite_terms-keyword 335.429 327.182 -8.24625 ms
90th percentile latency composite_terms-keyword 341.202 332.06 -9.14156 ms
99th percentile latency composite_terms-keyword 352.66 349.672 -2.98785 ms
100th percentile latency composite_terms-keyword 357.236 358.883 1.64719 ms
50th percentile service time composite_terms-keyword 334.36 325.906 -8.45387 ms
90th percentile service time composite_terms-keyword 340.412 331.014 -9.39803 ms
99th percentile service time composite_terms-keyword 351.632 348.432 -3.20009 ms
100th percentile service time composite_terms-keyword 356.033 357.135 1.10162 ms
error rate composite_terms-keyword 0 0 0 %
Min Throughput composite-date_histogram-daily 2.01246 2.0124 -6e-05 ops/s
Mean Throughput composite-date_histogram-daily 2.02051 2.02039 -0.00012 ops/s
Median Throughput composite-date_histogram-daily 2.01862 2.01853 -9e-05 ops/s
Max Throughput composite-date_histogram-daily 2.03688 2.03668 -0.0002 ops/s
50th percentile latency composite-date_histogram-daily 4.94292 5.01929 0.07637 ms
90th percentile latency composite-date_histogram-daily 5.37884 5.47806 0.09922 ms
99th percentile latency composite-date_histogram-daily 5.87848 5.88059 0.00211 ms
100th percentile latency composite-date_histogram-daily 5.97848 5.89118 -0.0873 ms
50th percentile service time composite-date_histogram-daily 3.58483 3.67423 0.08941 ms
90th percentile service time composite-date_histogram-daily 3.80505 3.98769 0.18265 ms
99th percentile service time composite-date_histogram-daily 4.11363 4.67396 0.56033 ms
100th percentile service time composite-date_histogram-daily 4.21392 4.95323 0.73931 ms
error rate composite-date_histogram-daily 0 0 0 %
Min Throughput range 2.01309 2.0131 1e-05 ops/s
Mean Throughput range 2.02154 2.02157 2e-05 ops/s
Median Throughput range 2.01957 2.01958 1e-05 ops/s
Max Throughput range 2.0387 2.03875 5e-05 ops/s
50th percentile latency range 6.22265 6.17715 -0.04551 ms
90th percentile latency range 6.63341 6.61435 -0.01906 ms
99th percentile latency range 6.86706 25.9711 19.104 ms
100th percentile latency range 6.86998 43.9269 37.0569 ms
50th percentile service time range 4.86894 4.82646 -0.04248 ms
90th percentile service time range 5.03842 5.08293 0.04451 ms
99th percentile service time range 5.61396 25.2639 19.6499 ms
100th percentile service time range 5.62893 42.9895 37.3606 ms
error rate range 0 0 0 %
Min Throughput range-numeric 2.01312 2.01316 4e-05 ops/s
Mean Throughput range-numeric 2.02157 2.02165 7e-05 ops/s
Median Throughput range-numeric 2.0196 2.01967 6e-05 ops/s
Max Throughput range-numeric 2.03883 2.03892 9e-05 ops/s
50th percentile latency range-numeric 3.87 3.83944 -0.03056 ms
90th percentile latency range-numeric 4.30645 4.26425 -0.0422 ms
99th percentile latency range-numeric 4.42465 4.74231 0.31766 ms
100th percentile latency range-numeric 4.44322 4.75869 0.31546 ms
50th percentile service time range-numeric 2.54885 2.50474 -0.0441 ms
90th percentile service time range-numeric 2.6322 2.6356 0.00341 ms
99th percentile service time range-numeric 2.72614 2.75306 0.02692 ms
100th percentile service time range-numeric 2.74168 2.77032 0.02865 ms
error rate range-numeric 0 0 0 %
Min Throughput keyword-in-range 2.01111 2.01111 -0 ops/s
Mean Throughput keyword-in-range 2.01825 2.01827 2e-05 ops/s
Median Throughput keyword-in-range 2.01656 2.01661 4e-05 ops/s
Max Throughput keyword-in-range 2.03282 2.03279 -3e-05 ops/s
50th percentile latency keyword-in-range 15.7213 15.6828 -0.03847 ms
90th percentile latency keyword-in-range 16.8761 16.4968 -0.37934 ms
99th percentile latency keyword-in-range 22.5497 39.5585 17.0087 ms
100th percentile latency keyword-in-range 22.6726 55.8644 33.1918 ms
50th percentile service time keyword-in-range 14.3756 14.3591 -0.01645 ms
90th percentile service time keyword-in-range 15.3975 15.0666 -0.33085 ms
99th percentile service time keyword-in-range 21.1658 38.3299 17.1641 ms
100th percentile service time keyword-in-range 21.3394 54.3134 32.974 ms
error rate keyword-in-range 0 0 0 %
Min Throughput date_histogram_hourly_agg 2.01148 2.01112 -0.00035 ops/s
Mean Throughput date_histogram_hourly_agg 2.01887 2.0183 -0.00057 ops/s
Median Throughput date_histogram_hourly_agg 2.01714 2.01662 -0.00052 ops/s
Max Throughput date_histogram_hourly_agg 2.03387 2.03283 -0.00104 ops/s
50th percentile latency date_histogram_hourly_agg 7.90118 7.55935 -0.34182 ms
90th percentile latency date_histogram_hourly_agg 9.5931 8.98133 -0.61176 ms
99th percentile latency date_histogram_hourly_agg 11.481 9.40144 -2.07953 ms
100th percentile latency date_histogram_hourly_agg 11.4932 9.46892 -2.02426 ms
50th percentile service time date_histogram_hourly_agg 6.33366 6.08539 -0.24827 ms
90th percentile service time date_histogram_hourly_agg 8.11001 7.5351 -0.57491 ms
99th percentile service time date_histogram_hourly_agg 10.2608 7.71718 -2.5436 ms
100th percentile service time date_histogram_hourly_agg 10.5262 7.7346 -2.79158 ms
error rate date_histogram_hourly_agg 0 0 0 %
Min Throughput date_histogram_minute_agg 2.01168 2.01139 -0.00029 ops/s
Mean Throughput date_histogram_minute_agg 2.0192 2.01872 -0.00048 ops/s
Median Throughput date_histogram_minute_agg 2.01744 2.01701 -0.00043 ops/s
Max Throughput date_histogram_minute_agg 2.03452 2.0336 -0.00092 ops/s
50th percentile latency date_histogram_minute_agg 43.1531 41.7541 -1.39906 ms
90th percentile latency date_histogram_minute_agg 44.5401 42.8648 -1.67529 ms
99th percentile latency date_histogram_minute_agg 47.9005 45.391 -2.50941 ms
100th percentile latency date_histogram_minute_agg 48.1095 45.8696 -2.23994 ms
50th percentile service time date_histogram_minute_agg 41.8395 40.3678 -1.47173 ms
90th percentile service time date_histogram_minute_agg 42.977 41.4016 -1.5754 ms
99th percentile service time date_histogram_minute_agg 46.6934 44.0861 -2.60732 ms
100th percentile service time date_histogram_minute_agg 47.4586 44.2627 -3.19592 ms
error rate date_histogram_minute_agg 0 0 0 %
Min Throughput scroll 49.2182 49.0129 -0.20525 pages/s
Mean Throughput scroll 49.555 49.443 -0.11194 pages/s
Median Throughput scroll 49.5939 49.4922 -0.10174 pages/s
Max Throughput scroll 49.7219 49.6582 -0.06372 pages/s
50th percentile latency scroll 467.707 451.516 -16.1909 ms
90th percentile latency scroll 481.142 461.671 -19.4707 ms
99th percentile latency scroll 520.819 488.452 -32.3668 ms
100th percentile latency scroll 534.793 490.039 -44.7535 ms
50th percentile service time scroll 466.041 450.576 -15.4644 ms
90th percentile service time scroll 479.513 460.514 -18.999 ms
99th percentile service time scroll 518.402 487.797 -30.6053 ms
100th percentile service time scroll 533.237 489.383 -43.8534 ms
error rate scroll 0 0 0 %
Min Throughput query-string-on-message 2.01026 2.01 -0.00027 ops/s
Mean Throughput query-string-on-message 2.01689 2.01642 -0.00047 ops/s
Median Throughput query-string-on-message 2.01534 2.01493 -0.00042 ops/s
Max Throughput query-string-on-message 2.03028 2.02947 -0.00081 ops/s
50th percentile latency query-string-on-message 7.39991 7.56738 0.16747 ms
90th percentile latency query-string-on-message 7.91564 8.23541 0.31978 ms
99th percentile latency query-string-on-message 9.18621 9.3466 0.16039 ms
100th percentile latency query-string-on-message 9.56978 9.78553 0.21575 ms
50th percentile service time query-string-on-message 6.07599 6.20966 0.13366 ms
90th percentile service time query-string-on-message 6.4102 6.61724 0.20704 ms
99th percentile service time query-string-on-message 8.0265 8.05687 0.03036 ms
100th percentile service time query-string-on-message 8.07217 8.10379 0.03162 ms
error rate query-string-on-message 0 0 0 %
Min Throughput query-string-on-message-filtered 2.01246 2.01266 0.00019 ops/s
Mean Throughput query-string-on-message-filtered 2.02051 2.02083 0.00032 ops/s
Median Throughput query-string-on-message-filtered 2.01864 2.01892 0.00027 ops/s
Max Throughput query-string-on-message-filtered 2.03688 2.03743 0.00055 ops/s
50th percentile latency query-string-on-message-filtered 14.4067 14.4001 -0.0066 ms
90th percentile latency query-string-on-message-filtered 14.8766 14.9021 0.02553 ms
99th percentile latency query-string-on-message-filtered 19.0221 17.2834 -1.73874 ms
100th percentile latency query-string-on-message-filtered 19.2538 18.0153 -1.23847 ms
50th percentile service time query-string-on-message-filtered 13.1137 13.0379 -0.07581 ms
90th percentile service time query-string-on-message-filtered 13.3443 13.3578 0.01343 ms
99th percentile service time query-string-on-message-filtered 17.7234 15.9532 -1.77024 ms
100th percentile service time query-string-on-message-filtered 18.2699 17.1072 -1.16271 ms
error rate query-string-on-message-filtered 0 0 0 %
Min Throughput query-string-on-message-filtered-sorted-num 2.0118 2.01209 0.00029 ops/s
Mean Throughput query-string-on-message-filtered-sorted-num 2.01938 2.01987 0.00049 ops/s
Median Throughput query-string-on-message-filtered-sorted-num 2.01761 2.01806 0.00045 ops/s
Max Throughput query-string-on-message-filtered-sorted-num 2.03478 2.03567 0.00089 ops/s
50th percentile latency query-string-on-message-filtered-sorted-num 36.1013 36.3538 0.2525 ms
90th percentile latency query-string-on-message-filtered-sorted-num 36.6426 36.7828 0.14016 ms
99th percentile latency query-string-on-message-filtered-sorted-num 38.4255 40.316 1.89046 ms
100th percentile latency query-string-on-message-filtered-sorted-num 38.5656 43.32 4.75439 ms
50th percentile service time query-string-on-message-filtered-sorted-num 34.762 34.977 0.21498 ms
90th percentile service time query-string-on-message-filtered-sorted-num 35.2032 35.3505 0.14726 ms
99th percentile service time query-string-on-message-filtered-sorted-num 37.1967 38.924 1.72724 ms
100th percentile service time query-string-on-message-filtered-sorted-num 37.6458 41.9877 4.34195 ms
error rate query-string-on-message-filtered-sorted-num 0 0 0 %
Min Throughput sort_keyword_can_match_shortcut 2.01287 2.01288 1e-05 ops/s
Mean Throughput sort_keyword_can_match_shortcut 2.02115 2.02118 2e-05 ops/s
Median Throughput sort_keyword_can_match_shortcut 2.01923 2.01924 1e-05 ops/s
Max Throughput sort_keyword_can_match_shortcut 2.03803 2.0381 7e-05 ops/s
50th percentile latency sort_keyword_can_match_shortcut 5.561 5.65479 0.09379 ms
90th percentile latency sort_keyword_can_match_shortcut 5.98329 6.07691 0.09362 ms
99th percentile latency sort_keyword_can_match_shortcut 6.26583 6.18655 -0.07928 ms
100th percentile latency sort_keyword_can_match_shortcut 6.3675 6.18816 -0.17934 ms
50th percentile service time sort_keyword_can_match_shortcut 4.21434 4.37176 0.15741 ms
90th percentile service time sort_keyword_can_match_shortcut 4.3395 4.49364 0.15414 ms
99th percentile service time sort_keyword_can_match_shortcut 4.51445 4.67405 0.15959 ms
100th percentile service time sort_keyword_can_match_shortcut 4.60092 4.73371 0.13279 ms
error rate sort_keyword_can_match_shortcut 0 0 0 %
Min Throughput sort_keyword_no_can_match_shortcut 2.01321 2.0132 -2e-05 ops/s
Mean Throughput sort_keyword_no_can_match_shortcut 2.02175 2.02174 -1e-05 ops/s
Median Throughput sort_keyword_no_can_match_shortcut 2.01973 2.01976 3e-05 ops/s
Max Throughput sort_keyword_no_can_match_shortcut 2.03913 2.03911 -2e-05 ops/s
50th percentile latency sort_keyword_no_can_match_shortcut 5.32238 5.96376 0.64138 ms
90th percentile latency sort_keyword_no_can_match_shortcut 5.92359 6.37808 0.45449 ms
99th percentile latency sort_keyword_no_can_match_shortcut 6.3833 6.56175 0.17844 ms
100th percentile latency sort_keyword_no_can_match_shortcut 6.4852 6.57066 0.08546 ms
50th percentile service time sort_keyword_no_can_match_shortcut 4.18131 4.64008 0.45876 ms
90th percentile service time sort_keyword_no_can_match_shortcut 4.36522 4.74742 0.3822 ms
99th percentile service time sort_keyword_no_can_match_shortcut 4.86081 5.01921 0.1584 ms
100th percentile service time sort_keyword_no_can_match_shortcut 5.07396 5.11083 0.03687 ms
error rate sort_keyword_no_can_match_shortcut 0 0 0 %
Min Throughput sort_numeric_desc 2.01151 2.01103 -0.00048 ops/s
Mean Throughput sort_numeric_desc 2.01895 2.01813 -0.00082 ops/s
Median Throughput sort_numeric_desc 2.0172 2.01648 -0.00072 ops/s
Max Throughput sort_numeric_desc 2.03408 2.03253 -0.00155 ops/s
50th percentile latency sort_numeric_desc 6.28961 6.3546 0.06499 ms
90th percentile latency sort_numeric_desc 6.7732 6.73731 -0.03589 ms
99th percentile latency sort_numeric_desc 7.68792 7.63817 -0.04975 ms
100th percentile latency sort_numeric_desc 7.84005 7.76159 -0.07845 ms
50th percentile service time sort_numeric_desc 4.9241 5.04064 0.11654 ms
90th percentile service time sort_numeric_desc 5.12607 5.14279 0.01672 ms
99th percentile service time sort_numeric_desc 6.25203 5.9744 -0.27763 ms
100th percentile service time sort_numeric_desc 6.3709 6.06057 -0.31033 ms
error rate sort_numeric_desc 0 0 0 %
Min Throughput sort_numeric_asc 2.01302 2.01303 1e-05 ops/s
Mean Throughput sort_numeric_asc 2.02142 2.02146 3e-05 ops/s
Median Throughput sort_numeric_asc 2.01947 2.0195 2e-05 ops/s
Max Throughput sort_numeric_asc 2.03849 2.0386 0.00011 ops/s
50th percentile latency sort_numeric_asc 5.97098 5.67069 -0.30028 ms
90th percentile latency sort_numeric_asc 6.44144 6.09277 -0.34867 ms
99th percentile latency sort_numeric_asc 7.05169 6.68605 -0.36564 ms
100th percentile latency sort_numeric_asc 7.15511 6.76963 -0.38548 ms
50th percentile service time sort_numeric_asc 4.61051 4.29469 -0.31582 ms
90th percentile service time sort_numeric_asc 4.81838 4.46608 -0.35231 ms
99th percentile service time sort_numeric_asc 5.37288 5.05936 -0.31352 ms
100th percentile service time sort_numeric_asc 5.37436 5.10757 -0.26678 ms
error rate sort_numeric_asc 0 0 0 %
Min Throughput sort_numeric_desc_with_match 2.01326 2.01326 0 ops/s
Mean Throughput sort_numeric_desc_with_match 2.02182 2.02183 1e-05 ops/s
Median Throughput sort_numeric_desc_with_match 2.01983 2.01983 0 ops/s
Max Throughput sort_numeric_desc_with_match 2.03922 2.03925 4e-05 ops/s
50th percentile latency sort_numeric_desc_with_match 3.58985 3.69676 0.10691 ms
90th percentile latency sort_numeric_desc_with_match 3.92068 4.12214 0.20147 ms
99th percentile latency sort_numeric_desc_with_match 4.18514 4.23445 0.04932 ms
100th percentile latency sort_numeric_desc_with_match 4.22832 4.24286 0.01454 ms
50th percentile service time sort_numeric_desc_with_match 2.23533 2.40756 0.17222 ms
90th percentile service time sort_numeric_desc_with_match 2.33028 2.50308 0.1728 ms
99th percentile service time sort_numeric_desc_with_match 2.50581 2.6012 0.09539 ms
100th percentile service time sort_numeric_desc_with_match 2.52168 2.62842 0.10674 ms
error rate sort_numeric_desc_with_match 0 0 0 %
Min Throughput sort_numeric_asc_with_match 2.01312 2.01325 0.00014 ops/s
Mean Throughput sort_numeric_asc_with_match 2.02159 2.02182 0.00023 ops/s
Median Throughput sort_numeric_asc_with_match 2.01963 2.01981 0.00019 ops/s
Max Throughput sort_numeric_asc_with_match 2.0388 2.03925 0.00045 ops/s
50th percentile latency sort_numeric_asc_with_match 3.7593 3.97683 0.21753 ms
90th percentile latency sort_numeric_asc_with_match 4.14499 4.38194 0.23695 ms
99th percentile latency sort_numeric_asc_with_match 4.4821 4.5531 0.071 ms
100th percentile latency sort_numeric_asc_with_match 4.5457 4.58102 0.03531 ms
50th percentile service time sort_numeric_asc_with_match 2.39661 2.64286 0.24625 ms
90th percentile service time sort_numeric_asc_with_match 2.49242 2.76291 0.27049 ms
99th percentile service time sort_numeric_asc_with_match 2.73103 3.19681 0.46577 ms
100th percentile service time sort_numeric_asc_with_match 2.76599 3.33587 0.56988 ms
error rate sort_numeric_asc_with_match 0 0 0 %
Min Throughput range_field_conjunction_big_range_big_term_query 2.01315 2.01325 0.00011 ops/s
Mean Throughput range_field_conjunction_big_range_big_term_query 2.02163 2.02181 0.00018 ops/s
Median Throughput range_field_conjunction_big_range_big_term_query 2.01965 2.01981 0.00016 ops/s
Max Throughput range_field_conjunction_big_range_big_term_query 2.03893 2.03918 0.00025 ops/s
50th percentile latency range_field_conjunction_big_range_big_term_query 3.63674 3.53922 -0.09751 ms
90th percentile latency range_field_conjunction_big_range_big_term_query 4.0296 4.01627 -0.01333 ms
99th percentile latency range_field_conjunction_big_range_big_term_query 8.72676 4.20404 -4.52272 ms
100th percentile latency range_field_conjunction_big_range_big_term_query 8.75714 4.24813 -4.50901 ms
50th percentile service time range_field_conjunction_big_range_big_term_query 2.31965 2.32909 0.00944 ms
90th percentile service time range_field_conjunction_big_range_big_term_query 2.42235 2.44306 0.02072 ms
99th percentile service time range_field_conjunction_big_range_big_term_query 7.39203 2.60251 -4.78951 ms
100th percentile service time range_field_conjunction_big_range_big_term_query 7.51979 2.62765 -4.89214 ms
error rate range_field_conjunction_big_range_big_term_query 0 0 0 %
Min Throughput range_field_disjunction_big_range_small_term_query 2.01323 2.01327 4e-05 ops/s
Mean Throughput range_field_disjunction_big_range_small_term_query 2.02178 2.02182 3e-05 ops/s
Median Throughput range_field_disjunction_big_range_small_term_query 2.01978 2.01982 4e-05 ops/s
Max Throughput range_field_disjunction_big_range_small_term_query 2.0392 2.03919 -1e-05 ops/s
50th percentile latency range_field_disjunction_big_range_small_term_query 3.78717 3.69382 -0.09335 ms
90th percentile latency range_field_disjunction_big_range_small_term_query 4.19103 4.11685 -0.07418 ms
99th percentile latency range_field_disjunction_big_range_small_term_query 4.37961 4.90221 0.5226 ms
100th percentile latency range_field_disjunction_big_range_small_term_query 4.42882 5.0745 0.64568 ms
50th percentile service time range_field_disjunction_big_range_small_term_query 2.45524 2.35962 -0.09561 ms
90th percentile service time range_field_disjunction_big_range_small_term_query 2.57723 2.46099 -0.11624 ms
99th percentile service time range_field_disjunction_big_range_small_term_query 2.68284 3.1099 0.42706 ms
100th percentile service time range_field_disjunction_big_range_small_term_query 2.69805 3.60178 0.90373 ms
error rate range_field_disjunction_big_range_small_term_query 0 0 0 %
Min Throughput range_field_conjunction_small_range_small_term_query 2.01328 2.01327 -1e-05 ops/s
Mean Throughput range_field_conjunction_small_range_small_term_query 2.02185 2.02182 -3e-05 ops/s
Median Throughput range_field_conjunction_small_range_small_term_query 2.01983 2.01984 0 ops/s
Max Throughput range_field_conjunction_small_range_small_term_query 2.03928 2.03923 -5e-05 ops/s
50th percentile latency range_field_conjunction_small_range_small_term_query 3.70986 3.67595 -0.03392 ms
90th percentile latency range_field_conjunction_small_range_small_term_query 4.07273 4.10621 0.03347 ms
99th percentile latency range_field_conjunction_small_range_small_term_query 4.37059 4.21214 -0.15845 ms
100th percentile latency range_field_conjunction_small_range_small_term_query 4.51636 4.24076 -0.2756 ms
50th percentile service time range_field_conjunction_small_range_small_term_query 2.35682 2.35088 -0.00594 ms
90th percentile service time range_field_conjunction_small_range_small_term_query 2.45703 2.43858 -0.01846 ms
99th percentile service time range_field_conjunction_small_range_small_term_query 2.60845 2.5517 -0.05675 ms
100th percentile service time range_field_conjunction_small_range_small_term_query 2.64657 2.5693 -0.07727 ms
error rate range_field_conjunction_small_range_small_term_query 0 0 0 %
Min Throughput range_field_conjunction_small_range_big_term_query 2.01329 2.01323 -6e-05 ops/s
Mean Throughput range_field_conjunction_small_range_big_term_query 2.02187 2.02176 -0.0001 ops/s
Median Throughput range_field_conjunction_small_range_big_term_query 2.01989 2.01977 -0.00011 ops/s
Max Throughput range_field_conjunction_small_range_big_term_query 2.03929 2.03911 -0.00017 ops/s
50th percentile latency range_field_conjunction_small_range_big_term_query 3.57284 3.77915 0.20631 ms
90th percentile latency range_field_conjunction_small_range_big_term_query 3.95039 4.18977 0.23938 ms
99th percentile latency range_field_conjunction_small_range_big_term_query 4.42212 4.45538 0.03326 ms
100th percentile latency range_field_conjunction_small_range_big_term_query 4.47961 4.51529 0.03568 ms
50th percentile service time range_field_conjunction_small_range_big_term_query 2.2106 2.52339 0.3128 ms
90th percentile service time range_field_conjunction_small_range_big_term_query 2.36336 2.6133 0.24994 ms
99th percentile service time range_field_conjunction_small_range_big_term_query 3.08793 2.84929 -0.23864 ms
100th percentile service time range_field_conjunction_small_range_big_term_query 3.40084 2.91301 -0.48783 ms
error rate range_field_conjunction_small_range_big_term_query 0 0 0 %
Min Throughput range-auto-date-histo 1.97114 1.96277 -0.00837 ops/s
Mean Throughput range-auto-date-histo 1.98362 1.97886 -0.00476 ops/s
Median Throughput range-auto-date-histo 1.98505 1.98069 -0.00436 ops/s
Max Throughput range-auto-date-histo 1.98988 1.98694 -0.00294 ops/s
50th percentile latency range-auto-date-histo 350.902 347.888 -3.01408 ms
90th percentile latency range-auto-date-histo 367.69 365.672 -2.01753 ms
99th percentile latency range-auto-date-histo 393.102 395.813 2.7108 ms
100th percentile latency range-auto-date-histo 400.916 417.367 16.451 ms
50th percentile service time range-auto-date-histo 350.079 346.966 -3.1125 ms
90th percentile service time range-auto-date-histo 366.889 364.945 -1.94383 ms
99th percentile service time range-auto-date-histo 392.322 395.143 2.82101 ms
100th percentile service time range-auto-date-histo 400.02 416.739 16.7191 ms
error rate range-auto-date-histo 0 0 0 %
Min Throughput range-with-metrics 0.12565 0.129942 0.00429 ops/s
Mean Throughput range-with-metrics 0.125817 0.130044 0.00423 ops/s
Median Throughput range-with-metrics 0.125775 0.130027 0.00425 ops/s
Max Throughput range-with-metrics 0.126111 0.130211 0.0041 ops/s
50th percentile latency range-with-metrics 750039 723569 -26470.4 ms
90th percentile latency range-with-metrics 1.04566e+06 1.01006e+06 -35604.8 ms
99th percentile latency range-with-metrics 1.11164e+06 1.07422e+06 -37414.2 ms
100th percentile latency range-with-metrics 1.11528e+06 1.07779e+06 -37497.4 ms
50th percentile service time range-with-metrics 7913.65 7672.84 -240.804 ms
90th percentile service time range-with-metrics 8021.85 7751.42 -270.431 ms
99th percentile service time range-with-metrics 8171.33 7810.93 -360.399 ms
100th percentile service time range-with-metrics 8214.33 7826.6 -387.729 ms
error rate range-with-metrics 0 0 0 %
Min Throughput range-auto-date-histo-with-metrics 0.140701 0.141398 0.0007 ops/s
Mean Throughput range-auto-date-histo-with-metrics 0.140862 0.141477 0.00061 ops/s
Median Throughput range-auto-date-histo-with-metrics 0.140871 0.141465 0.00059 ops/s
Max Throughput range-auto-date-histo-with-metrics 0.140955 0.141567 0.00061 ops/s
50th percentile latency range-auto-date-histo-with-metrics 663013 659765 -3247.81 ms
90th percentile latency range-auto-date-histo-with-metrics 926562 923038 -3523.5 ms
99th percentile latency range-auto-date-histo-with-metrics 985795 982063 -3732.56 ms
100th percentile latency range-auto-date-histo-with-metrics 989078 985333 -3745 ms
50th percentile service time range-auto-date-histo-with-metrics 7059.5 7052.57 -6.92627 ms
90th percentile service time range-auto-date-histo-with-metrics 7163.13 7149.46 -13.6675 ms
99th percentile service time range-auto-date-histo-with-metrics 7784.62 7437.21 -347.412 ms
100th percentile service time range-auto-date-histo-with-metrics 7801.56 7649.62 -151.935 ms
error rate range-auto-date-histo-with-metrics 0 0 0 %
Min Throughput range-agg-1 2.01325 2.01324 -1e-05 ops/s
Mean Throughput range-agg-1 2.02181 2.02179 -2e-05 ops/s
Median Throughput range-agg-1 2.01982 2.0198 -3e-05 ops/s
Max Throughput range-agg-1 2.03921 2.03916 -5e-05 ops/s
50th percentile latency range-agg-1 4.02567 4.07219 0.04652 ms
90th percentile latency range-agg-1 4.37657 4.42224 0.04567 ms
99th percentile latency range-agg-1 5.46191 4.63537 -0.82654 ms
100th percentile latency range-agg-1 5.54537 4.69235 -0.85302 ms
50th percentile service time range-agg-1 2.64171 2.72545 0.08374 ms
90th percentile service time range-agg-1 2.7518 2.82856 0.07676 ms
99th percentile service time range-agg-1 4.07114 2.92517 -1.14597 ms
100th percentile service time range-agg-1 4.41493 2.92826 -1.48667 ms
error rate range-agg-1 0 0 0 %
Min Throughput range-agg-2 2.01326 2.01324 -2e-05 ops/s
Mean Throughput range-agg-2 2.0218 2.02181 1e-05 ops/s
Median Throughput range-agg-2 2.01982 2.01981 -0 ops/s
Max Throughput range-agg-2 2.03922 2.03921 -0 ops/s
50th percentile latency range-agg-2 4.12278 4.21739 0.09462 ms
90th percentile latency range-agg-2 4.59874 4.66103 0.06229 ms
99th percentile latency range-agg-2 4.80175 4.7731 -0.02865 ms
100th percentile latency range-agg-2 4.85129 4.77774 -0.07354 ms
50th percentile service time range-agg-2 2.88108 2.9616 0.08052 ms
90th percentile service time range-agg-2 2.96634 3.06462 0.09828 ms
99th percentile service time range-agg-2 3.08839 3.24994 0.16155 ms
100th percentile service time range-agg-2 3.12184 3.32155 0.19971 ms
error rate range-agg-2 0 0 0 %
Min Throughput cardinality-agg-low 2.01088 2.00988 -0.001 ops/s
Mean Throughput cardinality-agg-low 2.01788 2.01624 -0.00164 ops/s
Median Throughput cardinality-agg-low 2.01627 2.01476 -0.00151 ops/s
Max Throughput cardinality-agg-low 2.03209 2.02914 -0.00295 ops/s
50th percentile latency cardinality-agg-low 4.83682 5.18444 0.34762 ms
90th percentile latency cardinality-agg-low 5.28611 5.75176 0.46565 ms
99th percentile latency cardinality-agg-low 5.70961 6.55548 0.84587 ms
100th percentile latency cardinality-agg-low 5.90427 6.97244 1.06817 ms
50th percentile service time cardinality-agg-low 3.51913 3.81153 0.2924 ms
90th percentile service time cardinality-agg-low 3.83624 4.29299 0.45675 ms
99th percentile service time cardinality-agg-low 4.31053 5.10251 0.79199 ms
100th percentile service time cardinality-agg-low 4.33246 5.46538 1.13292 ms
error rate cardinality-agg-low 0 0 0 %
Min Throughput cardinality-agg-high 1.14592 1.05723 -0.08869 ops/s
Mean Throughput cardinality-agg-high 1.15128 1.06932 -0.08196 ops/s
Median Throughput cardinality-agg-high 1.1515 1.06587 -0.08562 ops/s
Max Throughput cardinality-agg-high 1.15479 1.09508 -0.05971 ops/s
50th percentile latency cardinality-agg-high 37343.4 44509.7 7166.27 ms
90th percentile latency cardinality-agg-high 51877.9 62942.7 11064.8 ms
99th percentile latency cardinality-agg-high 55186.8 67113.8 11927.1 ms
100th percentile latency cardinality-agg-high 55373.5 67351.2 11977.7 ms
50th percentile service time cardinality-agg-high 854.002 950.901 96.8984 ms
90th percentile service time cardinality-agg-high 887.217 998.063 110.847 ms
99th percentile service time cardinality-agg-high 971.525 1072.84 101.318 ms
100th percentile service time cardinality-agg-high 982.321 1115.02 132.697 ms
error rate cardinality-agg-high 0 0 0 %
Min Throughput cardinality-agg-very-high 0.85062 0.836913 -0.01371 ops/s
Mean Throughput cardinality-agg-very-high 0.855343 0.840816 -0.01453 ops/s
Median Throughput cardinality-agg-very-high 0.855707 0.841217 -0.01449 ops/s
Max Throughput cardinality-agg-very-high 0.858017 0.842241 -0.01578 ops/s
50th percentile latency cardinality-agg-very-high 67478 69296.1 1818.14 ms
90th percentile latency cardinality-agg-very-high 93851.1 96968.4 3117.32 ms
99th percentile latency cardinality-agg-very-high 99821.1 103084 3263.27 ms
100th percentile latency cardinality-agg-very-high 100150 103421 3270.85 ms
50th percentile service time cardinality-agg-very-high 1153.58 1176.75 23.1685 ms
90th percentile service time cardinality-agg-very-high 1186.39 1204.86 18.4692 ms
99th percentile service time cardinality-agg-very-high 1224.97 1317.81 92.8382 ms
100th percentile service time cardinality-agg-very-high 1227.85 1381.96 154.11 ms
error rate cardinality-agg-very-high 0 0 0 %
Min Throughput range_with_asc_sort 2.01312 2.01307 -5e-05 ops/s
Mean Throughput range_with_asc_sort 2.02158 2.02153 -5e-05 ops/s
Median Throughput range_with_asc_sort 2.01961 2.01956 -5e-05 ops/s
Max Throughput range_with_asc_sort 2.03877 2.03868 -9e-05 ops/s
50th percentile latency range_with_asc_sort 7.80742 8.05346 0.24603 ms
90th percentile latency range_with_asc_sort 8.18376 8.45526 0.27151 ms
99th percentile latency range_with_asc_sort 8.33163 9.73597 1.40434 ms
100th percentile latency range_with_asc_sort 8.33183 10.2965 1.96466 ms
50th percentile service time range_with_asc_sort 6.44346 6.72889 0.28544 ms
90th percentile service time range_with_asc_sort 6.57076 6.85039 0.27963 ms
99th percentile service time range_with_asc_sort 6.80659 8.519 1.71241 ms
100th percentile service time range_with_asc_sort 6.85294 8.62304 1.7701 ms
error rate range_with_asc_sort 0 0 0 %
Min Throughput range_with_desc_sort 2.01277 2.01261 -0.00015 ops/s
Mean Throughput range_with_desc_sort 2.02101 2.02075 -0.00026 ops/s
Median Throughput range_with_desc_sort 2.01909 2.01887 -0.00022 ops/s
Max Throughput range_with_desc_sort 2.03779 2.0373 -0.00049 ops/s
50th percentile latency range_with_desc_sort 7.69956 7.78396 0.0844 ms
90th percentile latency range_with_desc_sort 8.17275 8.19875 0.026 ms
99th percentile latency range_with_desc_sort 10.0955 10.0414 -0.05411 ms
100th percentile latency range_with_desc_sort 10.223 10.4754 0.2524 ms
50th percentile service time range_with_desc_sort 6.41763 6.42414 0.00651 ms
90th percentile service time range_with_desc_sort 6.49948 6.54631 0.04683 ms
99th percentile service time range_with_desc_sort 8.42241 9.00792 0.58551 ms
100th percentile service time range_with_desc_sort 8.4914 9.31296 0.82155 ms
error rate range_with_desc_sort 0 0 0 %

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

✅ Gradle check result for e4a2f86: SUCCESS

@prudhvigodithi

Copy link
Copy Markdown
Member Author

{"run-benchmark-test": "id_3"}

@prudhvigodithi
prudhvigodithi requested a review from sohami August 8, 2026 13:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or request Search:Aggregations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Histogram optimizations should work with Intra segment search

3 participants