Parent
#678
What to build
Replace or harden delimiter-based label-key encoding used by CountMinSketchWithHeap. Semicolon-joined keys cannot safely represent label values containing semicolons and can decode to the wrong label vector.
Preserve compatibility with existing persisted data if required.
Acceptance criteria
Blocked by
None - can start immediately.
Concrete example
Current encoding:
let encoded = labels.join(";");
let decoded = encoded.split(';').collect::<Vec<_>>();
These distinct label vectors collide:
["a;b", "c"] -> "a;b;c"
["a", "b;c"] -> "a;b;c"
A value such as path="a;b" also decodes as two labels instead of one.
The replacement should use a structured or length-prefixed representation, for example:
Parent
#678
What to build
Replace or harden delimiter-based label-key encoding used by CountMinSketchWithHeap. Semicolon-joined keys cannot safely represent label values containing semicolons and can decode to the wrong label vector.
Preserve compatibility with existing persisted data if required.
Acceptance criteria
Blocked by
None - can start immediately.
Concrete example
Current encoding:
These distinct label vectors collide:
A value such as
path="a;b"also decodes as two labels instead of one.The replacement should use a structured or length-prefixed representation, for example: