lance-format / lance-format/lance

re-use Dataset.commit() as the main entry point to commit transactions

Open
#6,317 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Do you also suggest that we remove create_index_uncommitted at the same time?

I'm not as sure about that. We definitely aren't consistent with how we handle uncommitted. For example, we use LanceFragment.create() for append:

https://github.com/lance-format/lance/blob/36e8b2d263bbbf606aa599a57c9b6f7cbd7d6664/python/python/tests/test_dataset.py#L1602

But we use .execute_uncommitted for merge insert:

https://github.com/lance-format/lance/blob/36e8b2d263bbbf606aa599a57c9b6f7cbd7d6664/python/python/tests/test_dataset.py#L1697-L1701

I think most important would be to re-use Dataset.commit() as the main entry point to commit transactions.

Originally posted by @wjones127 in https://github.com/lance-format/lance/issues/6313#issuecomment-4143710554

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 with python/python/tests/test_dataset.py, especially the append example near line 1602 and the merge-insert example near lines 1697-1701. Compare the current use of LanceFragment.create() and execute_uncommitted, then trace Dataset.commit() as the proposed transaction entry point. Done means the transaction paths consistently use Dataset.commit() while the handling of create_index_uncommitted is resolved.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, rust
Domain
databases
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.