Skip to content

[python] Support local-cache extension exclusions - #10225

Draft
XiaoHongbo-Hope wants to merge 10 commits into
apache:masterfrom
XiaoHongbo-Hope:codex/blob-meta-cache
Draft

XiaoHongbo-Hope wants to merge 10 commits into
apache:masterfrom
XiaoHongbo-Hope:codex/blob-meta-cache

Conversation

@XiaoHongbo-Hope

@XiaoHongbo-Hope XiaoHongbo-Hope commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Purpose

Cache data file blocks while leaving BLOB bodies on remote storage:

local-cache.whitelist=meta,global-index,data
local-cache.exclude-extensions=blob

The exclusion is optional and takes precedence over the whitelist. Empty exclusion preserves existing data behavior. Related Rust change: apache/paimon-rust#972.

Parquet, ORC and Avro reads now pass through the block cache, including selected Parquet row groups. The adapter passes known file sizes through and closes source streams after use. Cache format and table format are unchanged.

RocksDB BlobDB likewise favors caching blocks containing blob references over caching individual blob values. This PR caches file bytes, not decoded descriptors.

Tests

217 Python tests and 80 subtests passed. Real Parquet/ORC/Avro reader tests cover cold and warm reads, source deletion after warming, memory and disk caches, row selection, and known-size reads. Full Python Flake8 and diff checks passed. No new Python throughput benchmark.

@XiaoHongbo-Hope
XiaoHongbo-Hope marked this pull request as draft September 27, 2026 01:22
@XiaoHongbo-Hope XiaoHongbo-Hope changed the title [python] Cache BLOB metadata ranges separately from data [python] Support BLOB metadata caching Sep 27, 2026
@XiaoHongbo-Hope XiaoHongbo-Hope changed the title [python] Support BLOB metadata caching [python] Support Parquet-only local caching Sep 27, 2026
@XiaoHongbo-Hope XiaoHongbo-Hope changed the title [python] Support Parquet-only local caching [python] Support local-cache extension exclusions Sep 28, 2026
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.

1 participant