Repository navigation
fix(iceberg): publish merge deletes and append atomically - #1073
Merged
Merged
Conversation
Validate and align incoming data before staging writes. Use one Iceberg transaction for every delete batch and the replacement append, and record post-commit evidence only after publication. Add local catalog acceptance tests for multiple delete batches, rollback, replay, real commit conflicts, resource evidence, and DLT ingestion with ref isolation. Closes #1064
|
Nothing flagged · reviewed Architecture Data flow View
Tip Click the link under each diagram to open it on a canvas you can zoom, pan and step through 🪧 More tips
Thanks for using PR Lens! It's built by Coldtea, free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
Contributor
|
No blocking findings. Reviewed the full diff at What I verified
Remaining validation
No changes requested. |
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1064.
Changes
Real SQLite catalog and filesystem acceptance tests cover 1,003 incoming keys, reader-visible publication boundaries, failures after staged deletes and append and before catalog commit, unchanged rows and data snapshot on failure, replay, real optimistic conflicts, resource evidence, and DLT ingestion with isolated main/dev routing.
The transaction boundary is one merge call. This does not make a multi-file ingestion run one transaction. Schema policies and history work in #1065 and #1066 remain out of scope.
Verification
make setupuv run --locked pytest packages/phlo-iceberg/tests packages/phlo-dlt/tests -m "not integration" --tb=short -q: 294 passed, 6 deselected.make typecheck-python, focused Ruff lint/format, file-header check, andgit diff --check: passed.make check: passed; 5,802 tests passed, 4 skipped, 228 deselected. The initial header-baseline test failure was caused by missing history in the shallow checkout; fetching full history resolved it without code changes.uv run --locked python scripts/run_integration.py: all seven disposable Nessie/MinIO verification suites passed, 110 tests total with no skips. New atomicity acceptance tests run locally without those services.No merge or deployment has been performed.