feature: Transaction V2 conflict parity with the legacy resolver
Maintainers usually reply within 3 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Read the Transaction V2 conflict resolver work referenced by #7954 and #8644–#8646, then trace how it handles SetDeletionFile, AddOverlays, AssertUniqueKeys, and RefreshRowVersionMetadata. Compare those cases with the legacy resolver and its tests. Done means the specified conflict behavior matches legacy where required, with the row-version refresh limitation preserved until per-column versions are recorded.
Written by the indexing model from the issue text.
Description
Transaction V2 (#7954, #8644–#8646) resolves conflicts between action sets with coarse footprints. In a few places that is stricter than the legacy resolver, which compares affected rows. This issue tracks restoring legacy parity for those cases.
- Deletes vs deletes. Two
SetDeletionFiles on one fragment always conflict. Legacy merges concurrent deletes when the deleted rows are disjoint. Merge during rebase only when both sides only add deletions, the fragment's row layout is unchanged, and the deleted rows are disjoint; a clear or an undelete still conflicts. - Overlay vs delete.
AddOverlaysclaims the fragment's deletions so it conflicts with a row-moving update, whose re-created rows would drop the overlay's values. It also conflicts with a plain delete. Legacy conflicts only when the newly deleted rows intersect the overlay's coverage. - Key assertions.
AssertUniqueKeysis checked in both commit orders, so a plain append conflicts with a committed merge-insert's assertion. Decide whether the assertion is a precondition on its own commit, which needs only one direction, or an invariant on the table, and match legacy. - Row-version refresh. Two
RefreshRowVersionMetadataon one fragment conflict even when they would compose. This stays until the sequence records per-column versions.
- Dominant language
- Rust
- Stars
- 7.2k
- Forks
- 900
- Avg merge
- 4d 22h
- Merged PRs (30d)
- 366
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from lance-format/lance
-
documentation
Difficulty 1/5 Under an hour Newbie friendliness 78/100
lance-format/lance#10225 ·
Maintainers usually reply within 3 days
-
feature performance
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
lance-format/lance#10137 ·
Maintainers usually reply within 3 days
-
After initialize_mem_wal, every FTS query logs "ERROR Index __lance_mem_wal has no fields"Possibly taken @lance-gatefixer claimed this 23 days ago. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
lance-format/lance#9655 ·
Maintainers usually reply within 3 days
-
Upgrade DataFusion for the unparser stack-overflow fixMay be free again A pull request for this issue was closed without being merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
lance-format/lance#8225 ·
Maintainers usually reply within 3 days
-
enhancement
Difficulty 1/5 Under an hour Newbie friendliness 84/100
lance-format/lance#6425 · 2 comments ·
Maintainers usually reply within 3 days
All issues in lance-format/lance
Similar issues
-
api bug entity mobai
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Pumpkin-MC/Pumpkin#4312 ·
Maintainers usually reply within 1 day
-
bug easy good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
lacs-project/sysknife#659 ·
Maintainers usually reply within 2 days
-
E_FIT_INPUT_MISSING (mixture overrides): the message says ferx-r bundles lack mixture_overridesOpenP3
Difficulty 1/5 Under an hour Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
registrystack/registry-stack#2431 ·
Maintainers usually reply within 1 day