Skip to content

FSST: decompress straight into the builder's byte storage - #9097

Draft
robert3005 wants to merge 1 commit into
rk/varbin-builder-traitfrom
rk/fsst-decode-into-builder
Draft

FSST: decompress straight into the builder's byte storage#9097
robert3005 wants to merge 1 commit into
rk/varbin-builder-traitfrom
rk/fsst-decode-into-builder

Conversation

@robert3005

Copy link
Copy Markdown
Contributor

Rationale for this change

  • Closes: #000

What changes are included in this PR?

What APIs are changed? Are there any user-facing changes?

`append_to_builder` staged the decompressed heap in a temporary
`ByteBufferMut` and then copied it into the builder. `FsstDecodePlan` hoists
the parts of `fsst_decode_bytes` that describe the decode — the code stream,
the per-row lengths and the total decoded size — so the decompression can
target the builder's spare capacity directly via `append_decoded`, leaving one
prefix sum over the lengths as the only work beyond the bulk
`decompress_into`.

`FSST_DECODE_SLACK` names the 7 spare bytes that keep `decompress_into` on its
wide-store path through the final value; it is a performance knob, not a safety
requirement.

Signed-off-by: Robert Kruszewski <robert@spiraldb.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant