fix: include ABFS container in object store cache key - #5053
Conversation
|
Nice targeted fix. I confirmed the analysis by reading A few small things worth considering:
None of these are blockers. |
|
@andygrove thanks for the review, added comment on the abfs branch and new test coverage per your review comment |
|
df PR: apache/datafusion#23935 |
|
Fix looks good and I confirmed it works. Two containers in the same account now resolve to their own stores across tasks, where on One question before I approve. Within a single plan, |
We didn't use the datafusion's |
Which issue does this PR close?
Closes #4993.
Rationale for this change
ABFS URLs encode the container in URL userinfo, for example
abfss://container@account.dfs.core.windows.net/path. The process-wide object store cachepreviously keyed stores by scheme, host, and port only, so different containers in the same
storage account shared one cache entry. Since each Azure object store is bound to the container
from its URL, a later read could reuse the first container's store and return data from the wrong
container.
What changes are included in this PR?
abfsandabfss, while retainingthe existing host-only behavior for other schemes.
configuration and verifies that they resolve to distinct object store instances.
How are these changes tested?
cargo test --manifest-path native/Cargo.toml -p datafusion-comet --lib(
129 passed; 4 ignored)cargo clippy --manifest-path native/Cargo.toml -p datafusion-comet --lib --tests -- -D warningscargo fmt --manifest-path native/Cargo.toml --all -- --checkThe regression constructs the Azure stores locally and does not issue network requests.