Skip to content

feat: support freshness-aware table loading in RestCatalog - #4094

Open
YuangGao wants to merge 2 commits into
apache:mainfrom
YuangGao:feat/rest-freshness-aware-load
Open

YuangGao wants to merge 2 commits into
apache:mainfrom
YuangGao:feat/rest-freshness-aware-load

Conversation

@YuangGao

@YuangGao YuangGao commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Closes #4075

Rationale for this change

  • load_table never sent If-None-Match, and a body-less 304 failed to parse.
  • Tables loaded with an ETag are now cached; a later load sends If-None-Match and returns a fresh Table from the cached response on 304.

Are these changes tested?

  • test_rest.py — reuse on 304, 304 without a cached table, and max-entries=0.
  • test_rest_catalog.py — 200 then 304 against the REST fixture.

Are there any user-facing changes?

  • New catalog properties rest-table-cache.max-entries (default 100, 0 disables) and rest-table-cache.expire-after-write-ms (default 5 minutes).

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.

RestCatalog: support freshness-aware table loading (If-None-Match / 304 Not Modified), as Iceberg Java does

1 participant