Skip to content

feat(encoding): add generic block compression - #8002

Draft
Xuanwo wants to merge 2 commits into
mainfrom
xuanwo/generic-block-compression
Draft

feat(encoding): add generic block compression#8002
Xuanwo wants to merge 2 commits into
mainfrom
xuanwo/generic-block-compression

Conversation

@Xuanwo

@Xuanwo Xuanwo commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Lance 2.3 needs a reusable, fallible block-sequence compression contract so variable-width mini-block offsets can use Range, Delta, RLE, dictionary, bitpacking, and general compression through the same concrete codec-tree model used by the existing encoding architecture.

This draft contains the complete end-to-end implementation to make the format boundary and dependency graph reviewable before it is split into smaller stacked PRs. It keeps Lance 2.0-2.2 persisted bytes, selection, and reader behavior unchanged, preserves chunk-local random-read granularity, and does not migrate the SparseLayout wire format.

The branch also includes the 2.3 generic-offset format documentation, compatibility and malformed-input coverage, and controlled encoder/decoder benchmarks. The draft will remain non-mergeable while the implementation is decomposed into reviewable units.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: QUIET

Plan: Pro Plus

Run ID: 6ec34aed-c28f-405b-808c-a6982db1f265

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch xuanwo/generic-block-compression

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

Important

This PR touches the Lance format specification.

Substantive changes to the format specification — the .proto definitions
and the spec docs under docs/src/format/ — require a PMC vote before merge.
Minor edits such as typo fixes, wording, or formatting are excluded; use your
judgment.

If this is a meaningful format change:

  • Start a vote following the Lance community voting process.
    Format specification modifications need 3 binding +1 votes (excluding the
    proposer), held on GitHub Discussions, with a minimum voting period of 1 week.
  • Once the vote passes, link the completed vote in this PR. It should not be
    merged until the vote is linked.

@github-actions github-actions Bot added A-encoding Encoding, IO, file reader/writer A-format On-disk format: protos and format spec docs enhancement New feature or request labels Jul 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-encoding Encoding, IO, file reader/writer A-format On-disk format: protos and format spec docs enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant