Skip to content

feat(master): add IndexId task to build ZoneMap index on rollout id column#150

Merged
beinan merged 1 commit into
mainfrom
feat-index-id-task
Jul 15, 2026
Merged

feat(master): add IndexId task to build ZoneMap index on rollout id column#150
beinan merged 1 commit into
mainfrom
feat-index-id-task

Conversation

@beinan

@beinan beinan commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add a third scheduler TaskKind::IndexId (alongside Compact and MergeWal) that builds a ZoneMap scalar index on an experiment base table's id column
  • Runs on the master and shares the per-name serial gate with Compact — both mutate the shared base table and CreateIndex vs Rewrite can conflict — so MasterState::inflight_compacts is generalized to inflight_dataset_writes
  • RolloutStore::create_id_zonemap_index() builds the index (replace(true), idempotent) and reloads the dataset; safe with the base table's MemWAL index (immutable rows, id-dedup at read)
  • UI drawer gains an "Index id" button that enqueues the task via the existing generic POST /api/v1/tasks

Test plan

  • cargo test -p lance-context-corecreate_id_zonemap_index builds + idempotent, works with MemWAL present
  • cargo test -p lance-context-apiTaskKind::IndexId serde round-trips as "index_id"
  • cargo test -p lance-context-masterindex_id_task_builds_index_and_reaches_done
  • cargo fmt --all + cargo clippy clean
  • npm run build (UI) passes

🤖 Generated with Claude Code

…olumn

Adds a third scheduler TaskKind alongside Compact and MergeWal that builds
a ZoneMap scalar index on an experiment base table's `id` column. Runs on
the master and shares the per-name serial gate with Compact (both mutate the
shared base table; CreateIndex vs Rewrite can conflict), so the gate field is
generalized from inflight_compacts to inflight_dataset_writes. The UI drawer
gains an "Index id" button that enqueues the task.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
@beinan beinan merged commit d41fd15 into main Jul 15, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant