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 umbrella contains the complete end-to-end implementation as an integration reference. It is intentionally non-mergeable; review and land the stacked Draft PRs below instead. The stack 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 stack also includes the Lance 2.3 generic-offset format documentation, compatibility and malformed-input coverage, and controlled encoder/decoder benchmarks.

Reviewable stack

  1. refactor(encoding): pass mini-block compression context #8038 — mini-block compression context
  2. refactor(encoding): make block codecs fallible #8040 — fallible block codec contract and concrete trees
  3. feat(encoding): add range and delta block codecs #8041 — Range and Delta codecs
  4. feat(encoding): decode generic mini-block offsets #8042 — generic variable-offset reader
  5. feat(encoding): add bounded block dictionary #8043 — bounded block Dictionary
  6. feat(encoding): select bounded offset codecs #8044 — bounded offset selector and complete wire-cost model
  7. feat(encoding): encode generic mini-block offsets #8045 — generic mini-block offset writer capability
  8. feat(encoding): adopt generic offsets in Lance 2.3 #8046 — Lance 2.3 production adopter and compatibility coverage
  9. perf(encoding): benchmark generic offsets #8048 — representative encoder/decoder benchmarks

Each PR is based on the previous stack branch; #8038 is based on main.

@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