mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-10-19 18:32:33 +00:00
* feat: add query regression perf harness Signed-off-by: discord9 <discord9@163.com> * feat: extend query regression cases Signed-off-by: discord9 <discord9@163.com> * ci: harden query regression workflows Signed-off-by: discord9 <discord9@163.com> * fix: address query regression review comments Signed-off-by: discord9 <discord9@163.com> * ci: limit query regression PR triggers Signed-off-by: discord9 <discord9@163.com> * ci: run full query regression case set Signed-off-by: discord9 <discord9@163.com> * refactor: model query regression scenarios Signed-off-by: discord9 <discord9@163.com> * fix: avoid unenforced query regression thresholds Signed-off-by: discord9 <discord9@163.com> --------- Signed-off-by: discord9 <discord9@163.com>
68 lines
1.8 KiB
TOML
68 lines
1.8 KiB
TOML
# Query performance regression case for GreptimeDB issue #7913.
|
|
# This is a case config for the generic direct-SST fixture generator. The
|
|
# generator must not hard-code PromQL/#7913 behavior; this file only supplies one
|
|
# schema/layout/query instance.
|
|
|
|
[case]
|
|
name = "promql_pushdown_7913"
|
|
description = "PromQL/TQL non-ms time-index query should prune SSTs for narrow time ranges"
|
|
issue = "https://github.com/GreptimeTeam/greptimedb/issues/7913"
|
|
|
|
[scenario]
|
|
kind = "direct_readable_sst"
|
|
seed = 7913
|
|
|
|
|
|
[[scenario.tables]]
|
|
database = "public"
|
|
name = "promql_pushdown_7913"
|
|
engine = "mito"
|
|
append_mode = true
|
|
sst_format = "flat"
|
|
primary_key = ["host", "instance"]
|
|
time_index = "greptime_timestamp"
|
|
|
|
[[scenario.tables.columns]]
|
|
name = "host"
|
|
type = "STRING"
|
|
semantic = "tag"
|
|
distribution = { kind = "cardinality", values = 256, prefix = "host" }
|
|
|
|
[[scenario.tables.columns]]
|
|
name = "instance"
|
|
type = "STRING"
|
|
semantic = "tag"
|
|
distribution = { kind = "cardinality", values = 4096, prefix = "instance" }
|
|
|
|
[[scenario.tables.columns]]
|
|
name = "download_mbs"
|
|
type = "DOUBLE"
|
|
semantic = "field"
|
|
distribution = { kind = "deterministic_wave", min = 0.0, max = 1000.0 }
|
|
|
|
[[scenario.tables.columns]]
|
|
name = "greptime_timestamp"
|
|
type = "TIMESTAMP(9)"
|
|
semantic = "timestamp"
|
|
|
|
[scenario.layout]
|
|
regions = 1
|
|
sst_count = 1024
|
|
rows_per_sst = 4096
|
|
row_group_size = 512
|
|
series_count = 4096
|
|
start_unix_nanos = 1704067200000000000 # 2024-01-01T00:00:00Z
|
|
step_nanos = 1000000000
|
|
time_range_layout = "non_overlapping_per_sst"
|
|
series_layout = "round_robin"
|
|
|
|
[[scenario.queries]]
|
|
name = "narrow_window"
|
|
kind = "tql"
|
|
query = "TQL ANALYZE VERBOSE (1704070800000, 1704070860000, '15s') promql_pushdown_7913{host=~'host.*'}"
|
|
warmup = 2
|
|
iterations = 5
|
|
|
|
[scenario.queries.thresholds]
|
|
max_candidate_latency_regression_pct = 15
|