Skip to content

feat(nimble): Add shared integer dictionary encoding (#18637) - #18637

Open
xiaoxmeng wants to merge 1 commit into
facebookincubator:mainfrom
xiaoxmeng:export-D112768733
Open

feat(nimble): Add shared integer dictionary encoding (#18637)#18637
xiaoxmeng wants to merge 1 commit into
facebookincubator:mainfrom
xiaoxmeng:export-D112768733

Conversation

@xiaoxmeng

@xiaoxmeng xiaoxmeng commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary:

Add shared dictionary encoding for integer Nimble value streams. Encoded chunks store the normal prefix plus dictionary indices, while the alphabet is resolved from a stripe stream, a file catalog, or an external resolver. This lets selected value streams share alphabets even when their physical stream ids vary by stripe, including FlatMap values.

Wire dictionary resolution through tablet readers and bind the resolved alphabet before regular, selective, and index-reader decoding. Writers configure eligible regular columns and flat-map values explicitly, compare shared dictionary encoding with direct encoding for stripe scope on the first chunk, and keep that choice for the rest of the stripe.

File and external dictionaries use prebuilt alphabets and avoid per-chunk scope or dictionary-id payload. Unsupported dictionary lifecycles remain rejected until they are implemented.

Reviewed By: tanjialiang

Differential Revision: D112768733

@netlify

netlify Bot commented Aug 22, 2026

Copy link
Copy Markdown

Deploy Preview for meta-velox canceled.

Name Link
🔨 Latest commit 12403dc
🔍 Latest deploy log https://app.netlify.com/projects/meta-velox/deploys/6a8bede29ec8b30008702c66

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Aug 22, 2026
@meta-codesync

meta-codesync Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

@xiaoxmeng has exported this pull request. If you are a Meta employee, you can view the originating Diff in D112768733.

@github-actions

github-actions Bot commented Aug 22, 2026

Copy link
Copy Markdown

Selective Build Plan

Linux release with adapters is running a full build (PR has a standing approval). See the CI workflows README for what this means.


Selective build plan

xiaoxmeng added a commit to xiaoxmeng/velox that referenced this pull request Aug 22, 2026
…or#18637)

Summary:
Pull Request resolved: facebookincubator#18637

Add shared dictionary encoding for integer Nimble value streams. Encoded chunks store the normal prefix plus dictionary indices, while the alphabet is resolved from a stripe stream, a file catalog, or an external resolver. This lets selected value streams share alphabets even when their physical stream ids vary by stripe, including FlatMap values.

Wire dictionary resolution through tablet readers and bind the resolved alphabet before regular, selective, and index-reader decoding. Writers configure eligible regular columns and flat-map values explicitly, compare shared dictionary encoding with direct encoding for stripe scope on the first chunk, and keep that choice for the rest of the stripe.

File and external dictionaries use prebuilt alphabets and avoid per-chunk scope or dictionary-id payload. Unsupported dictionary lifecycles remain rejected until they are implemented.

Reviewed By: tanjialiang

Differential Revision: D112768733
@meta-codesync meta-codesync Bot changed the title feat(nimble): Add shared integer dictionary encoding feat(nimble): Add shared integer dictionary encoding (#18637) Aug 22, 2026
xiaoxmeng added a commit to xiaoxmeng/velox that referenced this pull request Aug 24, 2026
…or#18637)

Summary:
Pull Request resolved: facebookincubator#18637

Add shared dictionary encoding for integer Nimble value streams. Encoded chunks store the normal prefix plus dictionary indices, while the alphabet is resolved from a stripe stream, a file catalog, or an external resolver. This lets selected value streams share alphabets even when their physical stream ids vary by stripe, including FlatMap values.

Wire dictionary resolution through tablet readers and bind the resolved alphabet before regular, selective, and index-reader decoding. Writers configure eligible regular columns and flat-map values explicitly, compare shared dictionary encoding with direct encoding for stripe scope on the first chunk, and keep that choice for the rest of the stripe.

File and external dictionaries use prebuilt alphabets and avoid per-chunk scope or dictionary-id payload. Unsupported dictionary lifecycles remain rejected until they are implemented.

Reviewed By: tanjialiang

Differential Revision: D112768733
xiaoxmeng added a commit to xiaoxmeng/velox that referenced this pull request Aug 24, 2026
…or#18637)

Summary:
Pull Request resolved: facebookincubator#18637

Add shared dictionary encoding for integer Nimble value streams. Encoded chunks store the normal prefix plus dictionary indices, while the alphabet is resolved from a stripe stream, a file catalog, or an external resolver. This lets selected value streams share alphabets even when their physical stream ids vary by stripe, including FlatMap values.

Wire dictionary resolution through tablet readers and bind the resolved alphabet before regular, selective, and index-reader decoding. Writers configure eligible regular columns and flat-map values explicitly, compare shared dictionary encoding with direct encoding for stripe scope on the first chunk, and keep that choice for the rest of the stripe.

File and external dictionaries use prebuilt alphabets and avoid per-chunk scope or dictionary-id payload. Unsupported dictionary lifecycles remain rejected until they are implemented.

Reviewed By: tanjialiang

Differential Revision: D112768733
xiaoxmeng added a commit to xiaoxmeng/velox that referenced this pull request Aug 24, 2026
…or#18637)

Summary:
Pull Request resolved: facebookincubator#18637

Add shared dictionary encoding for integer Nimble value streams. Encoded chunks store the normal prefix plus dictionary indices, while the alphabet is resolved from a stripe stream, a file catalog, or an external resolver. This lets selected value streams share alphabets even when their physical stream ids vary by stripe, including FlatMap values.

Wire dictionary resolution through tablet readers and bind the resolved alphabet before regular, selective, and index-reader decoding. Writers configure eligible regular columns and flat-map values explicitly, compare shared dictionary encoding with direct encoding for stripe scope on the first chunk, and keep that choice for the rest of the stripe.

File and external dictionaries use prebuilt alphabets and avoid per-chunk scope or dictionary-id payload. Unsupported dictionary lifecycles remain rejected until they are implemented.

Reviewed By: tanjialiang

Differential Revision: D112768733
xiaoxmeng added a commit to xiaoxmeng/velox that referenced this pull request Aug 24, 2026
…or#18637)

Summary:
Pull Request resolved: facebookincubator#18637

Add shared dictionary encoding for integer Nimble value streams. Encoded chunks store the normal prefix plus dictionary indices, while the alphabet is resolved from a stripe stream, a file catalog, or an external resolver. This lets selected value streams share alphabets even when their physical stream ids vary by stripe, including FlatMap values.

Wire dictionary resolution through tablet readers and bind the resolved alphabet before regular, selective, and index-reader decoding. Writers configure eligible regular columns and flat-map values explicitly, compare shared dictionary encoding with direct encoding for stripe scope on the first chunk, and keep that choice for the rest of the stripe.

File and external dictionaries use prebuilt alphabets and avoid per-chunk scope or dictionary-id payload. Unsupported dictionary lifecycles remain rejected until they are implemented.

Reviewed By: tanjialiang

Differential Revision: D112768733
xiaoxmeng added a commit to xiaoxmeng/velox that referenced this pull request Aug 24, 2026
…or#18637)

Summary:
Pull Request resolved: facebookincubator#18637

Add shared dictionary encoding for integer Nimble value streams. Encoded chunks store the normal prefix plus dictionary indices, while the alphabet is resolved from a stripe stream, a file catalog, or an external resolver. This lets selected value streams share alphabets even when their physical stream ids vary by stripe, including FlatMap values.

Wire dictionary resolution through tablet readers and bind the resolved alphabet before regular, selective, and index-reader decoding. Writers configure eligible regular columns and flat-map values explicitly, compare shared dictionary encoding with direct encoding for stripe scope on the first chunk, and keep that choice for the rest of the stripe.

File and external dictionaries use prebuilt alphabets and avoid per-chunk scope or dictionary-id payload. Unsupported dictionary lifecycles remain rejected until they are implemented.

Reviewed By: tanjialiang

Differential Revision: D112768733
xiaoxmeng added a commit to xiaoxmeng/velox that referenced this pull request Aug 24, 2026
…or#18637)

Summary:
Pull Request resolved: facebookincubator#18637

Add shared dictionary encoding for integer Nimble value streams. Encoded chunks store the normal prefix plus dictionary indices, while the alphabet is resolved from a stripe stream, a file catalog, or an external resolver. This lets selected value streams share alphabets even when their physical stream ids vary by stripe, including FlatMap values.

Wire dictionary resolution through tablet readers and bind the resolved alphabet before regular, selective, and index-reader decoding. Writers configure eligible regular columns and flat-map values explicitly, compare shared dictionary encoding with direct encoding for stripe scope on the first chunk, and keep that choice for the rest of the stripe.

File and external dictionaries use prebuilt alphabets and avoid per-chunk scope or dictionary-id payload. Unsupported dictionary lifecycles remain rejected until they are implemented.

Reviewed By: tanjialiang

Differential Revision: D112768733
…or#18637)

Summary:
Pull Request resolved: facebookincubator#18637

Add shared dictionary encoding for integer Nimble value streams. Encoded chunks store the normal prefix plus dictionary indices, while the alphabet is resolved from a stripe stream, a file catalog, or an external resolver. This lets selected value streams share alphabets even when their physical stream ids vary by stripe, including FlatMap values.

Wire dictionary resolution through tablet readers and bind the resolved alphabet before regular, selective, and index-reader decoding. Writers configure eligible regular columns and flat-map values explicitly, compare shared dictionary encoding with direct encoding for stripe scope on the first chunk, and keep that choice for the rest of the stripe.

File and external dictionaries use prebuilt alphabets and avoid per-chunk scope or dictionary-id payload. Unsupported dictionary lifecycles remain rejected until they are implemented.

Reviewed By: tanjialiang

Differential Revision: D112768733
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. meta-exported

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants