lance-format / lance-format/lance

Epic: partitioned namespace

Open
#5,741 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Code Design

Image

1. ManifestNamespace

  • The ManifestNamespace will introduce an extended_properties feature, which supports storing specified properties as __manifest columns. These properties can be specified during create/describe table or namespace operations and are then set to or read from __manifest extended columns.
  • ManifestNamespace provides a public insert_into_manifest method to facilitate transactional commits for PartitionedNamespace.

2. PartitionedNamespace
PartitionedNamespace is an impl of trait LanceNamespace, and has a member of ManifestNamespace. PartitionedNamespace exposes two categories of APIs:

  • The first category inherits methods from LanceNamespace. All of their implementations directly delegate to ManifestNamespace.
  • The second category consists of methods with partition semantics, such as plan_scan and resolve_or_create_partition_table. These methods encapsulate partition-related logic and are exposed to upper-layer engines for integration via public APIs.

Step by Step

After PartitionedNamespace is implemented, we can start integrating with engines.

Related Links

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 reviewing the unchecked Step by Step items, especially PRs #6215, #6177, #6173, #5896, and #5638, then read Discussion #272 for context. The issue is complete when the listed ManifestNamespace, retryability, transaction, and PartitionedNamespace work is implemented so engine integration can begin.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.