diff --git a/src/cmd/src/bin/query_regression_runner/remote/ingest.rs b/src/cmd/src/bin/query_regression_runner/remote/ingest.rs index 2bc1d8c6c79..acf47361e10 100644 --- a/src/cmd/src/bin/query_regression_runner/remote/ingest.rs +++ b/src/cmd/src/bin/query_regression_runner/remote/ingest.rs @@ -34,7 +34,7 @@ pub(super) async fn run_render_remote_config(args: RenderRemoteConfigArgs) -> Re let config = match args.target { RemoteConfigTarget::Frontend => frontend_prom_config(&remote.prom_store)?, RemoteConfigTarget::Datanode if remote.disable_index_result_cache => { - "[[region_engine]]\n[region_engine.mito.index]\nresult_cache_size = \"0B\"\n" + "[[region_engine]]\n[region_engine.mito]\nrange_result_cache_size = \"0B\"\n[region_engine.mito.index]\nresult_cache_size = \"0B\"\n" .to_string() } RemoteConfigTarget::Datanode => String::new(), diff --git a/tests/perf/README.md b/tests/perf/README.md index e90e2207939..895c59d33a7 100644 --- a/tests/perf/README.md +++ b/tests/perf/README.md @@ -193,7 +193,7 @@ before trusting the query measurements. Use `--fixture-generator /path/to/query_perf_fixture` to provide the Rust helper to the outer driver. -Remote-write cases can set `disable_index_result_cache = true` under `[scenario.remote_write]` to launch both base and candidate datanodes with Mito's index result cache set to `0B`; this keeps warmed query samples exercising the inverted/Bloom index applier rather than reusing cached index results. The default is false, so other cases are unchanged. +Remote-write cases can set `disable_index_result_cache = true` under `[scenario.remote_write]` to launch both base and candidate datanodes with Mito's range result cache (`[region_engine.mito].range_result_cache_size`) and index result cache (`[region_engine.mito.index].result_cache_size`) set to `0B`. This avoids cache hits that otherwise bypass the inverted/Bloom index applier; use `EXPLAIN ANALYZE VERBOSE` to check actual applier calls, since other pruning may still bypass it. The default is false, so other cases are unchanged. Large manual remote-write cases can set `sample_chunk_size` to split ingestion by time. For each chunk, `prepare-remote` invokes `query_perf_fixture prom-remote-write` with the diff --git a/tests/perf/query_cases/opt06_bloom_empty_groups/case.toml b/tests/perf/query_cases/opt06_bloom_empty_groups/case.toml index 28be4e2ab2c..e4e100dd3b0 100644 --- a/tests/perf/query_cases/opt06_bloom_empty_groups/case.toml +++ b/tests/perf/query_cases/opt06_bloom_empty_groups/case.toml @@ -70,6 +70,13 @@ query = "EXPLAIN ANALYZE VERBOSE SELECT count(*) FROM opt06_bloom_empty_groups W warmup = 0 iterations = 1 +[[scenario.queries]] +name = "single_absent_host_count" +kind = "sql" +query = "SELECT count(*) FROM opt06_bloom_empty_groups WHERE host = 'host9999'" +warmup = 3 +iterations = 18 + [[scenario.queries]] name = "count_all_rows" kind = "sql"