Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

merge_insert analyze_plan: expose structured metrics

Open
#9,863 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 3 days

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
rust
Domain
databases

Research direction

Start from MergeInsertJob::analyze_plan and its variants, and find where the per-node metrics that appear in the formatted plan string are collected. The issue asks for a structured result returned alongside that string, covering write mode, join index usage, fragments touched, rows and bytes written, and join versus write time. Scope is open (the proposal is an example list), so agree the struct's shape with maintainers before implementing. Done means a test asserts those fields on a merge_insert plan while the existing string output is unchanged.

Written by the indexing model from the issue text.

Description

MergeInsertJob::analyze_plan* returns only a formatted plan string with metrics inline per node. Callers who want to size merge_insert batches (lancedb/lancedb#4257) need to parse that text to get the numbers that actually drive cost.

Proposal: expose a structured result alongside the string, e.g.:

  • write mode (RewriteRows / RewriteColumns)
  • whether the join used a scalar index, and index segment count for the join key
  • fragments touched
  • rows read, rows/bytes written
  • time in join vs write

LanceDB would then surface these in its merge_insert analyze_plan (currently a plain string).

Dominant language
Rust
Stars
7.2k
Forks
900
Avg merge
4d 22h
Merged PRs (30d)
366

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

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.

More from lance-format/lance

All issues in lance-format/lance

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.