Skip to content

[Spark] Enable async AMT CommitInfo reads with checksum gating - #7907

Open
yumingxuanguo-db wants to merge 2 commits into
delta-io:masterfrom
yumingxuanguo-db:a-guo_data/amt-async-commit-info-read-gates
Open

yumingxuanguo-db wants to merge 2 commits into
delta-io:masterfrom
yumingxuanguo-db:a-guo_data/amt-async-commit-info-read-gates

Conversation

@yumingxuanguo-db

Copy link
Copy Markdown
Collaborator

Which Delta project/connector is this regarding?

  • Spark

Description

AMT snapshot discovery can miss file actions when CRCs are unavailable and asynchronous CommitInfo reads are disabled. Enable this fallback by default so discovery can obtain the last manifest commit reference from CommitInfo.

Pass the supplied checksum into the async-read decision and skip the read when it is already available. Reads still require checkpoint reconciliation and the feature flag. Record delta.amt.snapshotDiscovery.readLastCommitInfoAsync after each completed read, including its duration and version, and add an amtSupported helper for protocol capability checks.

How was this patch tested?

Adds tests in AMTSnapshotDiscoverySuite for cold and warm AMT reads emitting the async-read event, and for post-commit snapshots skipping the read when an incremental checksum is supplied. The latter test keeps the table checkpoint-free so checkpoint reconciliation remains enabled.

git diff --check and patch-integrity checks pass. Scala tests have not been run locally for this revision; CI validation is pending.

Does this PR introduce any user-facing changes?

Enables the async CommitInfo fallback by default for AMT discovery without CRCs. Snapshot creation without a supplied checksum may incur an additional CommitInfo read; supplying a checksum avoids it. No public API or table-format changes.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants