Uh oh!
There was an error while loading. Please reload this page.
Add concurrency safety validation checks - #3049
Conversation
…te_no_new_deletes_for_data_file
052f6a7 to
32b2428CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| parent_snapshot: Ending snapshot on the branch being validated | ||
| """ | ||
| # If there is no current state, or no files has been added | ||
| if parent_snapshot is None or table.format_version < 2: |
There was a problem hiding this comment.
I've verified this logic locally by mocking a concurrent conflict. The table.format_version < 2 guard correctly prevents unnecessary overhead for V1 tables, and the use of the DeleteFileIndex ensures we are only blocking commits when there is a real overlap in data files (avoiding 'lazy' global locks).
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Fokko
commented
Feb 20, 2026
Thanks, @gabeiglio, for fixing this. Let's move this forward. Thanks @tusharchou and @geruh for the review 🙌 |
Closes#1930
Closes#1931
Rationale for this change
Now that we have an implementation of DeleteFileIndex we can move ahead and implement the last two safety concurrency validations mentioned in this #819
Are these changes tested?
Yes
Are there any user-facing changes?
No