lance-format / lance-format/lance

Use view types for sort-heavy workflows

Open
#8,239 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

performance
Dominant language
Rust
Stars
7.1k
Forks
852
Avg merge
3d 18h
Merged PRs (30d)
272

Description

When we are going to do a sort (training an index, user requested order-by, etc.) we should be using view types (binary view and string view). These sort much faster and, perhaps more importantly, they don't suffer from the same overhead issues (and sort node OOMs) that the other variants do.

In fact, it's probably safer to err on the side of using view types too much. The only time the view types are a penalty is when we have small strings and some kind of text-processing kernel (e.g. string contains).

We will also likely need to convert back to dense strings for the user if they request it.

This is related to #7069

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the sort-heavy workflows described in the issue, including index training and user-requested order-by operations, and review related issue #7069. The work is complete when these paths use binary or string view types where appropriate, while user-facing dense-string results are preserved when requested.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
data-engineering, performance
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.