test(perf): retain mixed dictionary values across SST row groups

Place instance before dc in both the primary key and flat column order. Materializing the old dc-first case yielded D=1 in all row groups; the corrected case has D=16 in all 256 groups while retaining 2097152 rows, 16 complete dc groups, 4096 instance groups and the deterministic sums. No generator or harness changes.

Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com>
This commit is contained in:
discord9
2026-10-08 15:49:01 +08:00
parent cc8b54fd39
commit 4617cb44ff
@@ -23,9 +23,18 @@ name = "sql_sum_group_by_dict_tag"
engine = "mito"
append_mode = true
sst_format = "flat"
primary_key = ["dc", "device", "instance"]
# Instance-first ordering keeps dc values mixed within sorted SST row groups.
primary_key = ["instance", "dc", "device"]
time_index = "ts"
# instance in the primary key retains 4096 distinct series; dc/device alone
# would represent only 16 actual keys. Column order matches the flat SST schema.
[[scenario.tables.columns]]
name = "instance"
type = "STRING"
semantic = "tag"
distribution = { kind = "cardinality", values = 4096, prefix = "instance" }
[[scenario.tables.columns]]
name = "dc"
type = "STRING"
@@ -38,14 +47,6 @@ type = "STRING"
semantic = "tag"
distribution = { kind = "cardinality", values = 4, prefix = "device" }
# instance in the primary key retains 4096 distinct series; dc/device alone
# would represent only 16 actual keys.
[[scenario.tables.columns]]
name = "instance"
type = "STRING"
semantic = "tag"
distribution = { kind = "cardinality", values = 4096, prefix = "instance" }
[[scenario.tables.columns]]
name = "val"
type = "DOUBLE"