UserOperation: Action-based Transactions for real diffs #5960
Replies: 5 comments
|
Very cool. Should I think a singular description might satisfy the "append and update in a single transaction" case but might not fully satisfy the branch-and-merge case. This would purely be for analyzing the transaction log. To apply the operation it should be fine to just flatten the list of actions. |
|
Love this design. The move from monolithic One gap I noticed: there's no tag-related action in the Would it make sense to add: as Also +1 to @westonpace's |
|
I've created a milestone to track prototyping this: https://github.com/lance-format/lance/milestone/11 We'll have a vote once it's ready to merge. |
|
I'm reviving this now. The prototyped protobuf files are here: #7954 I plan on drafting implementations of Rust library changes and conflict resolution next. I'll be integrating it with an e2e spike in LanceDB, and once I'm happy with that I'll have a final change up for a vote. |
Status update: implementation is up, merging as an experimental featureThe prototype is now a four-PR stack, and I'd like to merge it under the experimental specification features process that passed in #8305, rather than hold it all behind a single stabilization vote.
What changed from the proposal aboveThe design in the opening post has drifted enough that it should not be read as current. The two-level shape landed as @westonpace suggested it. Actions are singular and finer-grained than the sketch. New id references. A minting action ( Index actions operate on segments, not indices. The format has no first-class index apart from its segments, so Assertions. Cross-form conflicts fail closed. A Scope. The user-facing surface is hand construction through @charleshuang119 — on atomic Experimental declarationPrerequisites:
Commitments 2–4 accepted: the feature is removed if the stabilization vote does not pass, breaking changes may be made without a separate vote, and the PMC may require backwards-incompatible changes during stabilization. On commitment 5 ("a stable version may not contain experimental features"): this feature adds no feature flag and no format version bump — it lives in the transaction file — so it does not gate a stable file format version. |
Uh oh!
There was an error while loading. Please reload this page.
Create a new operation to improve transactions so that:
This is based on earlier proposal #3734. I've simplified the proposal, removing
CompositeOperationand setting the advanced use cases aside.Design
There will be two levels
User Operation
User operations are the user-facing ones. They will be the high-level operations that users recognize, such as
INSERT,CREATE INDEX, etc.Actions
Action is a granular change to the manifest. Traditional operations will be made up of multiple of these.
Details
Benefits
All reactions