apache/iceberg

Core: Stream DV Puffin rewrite in RewriteTablePathUtil to reduce memory pressure

Open

#15924 opened on Apr 9, 2026

View on GitHub
 (1 comment) (0 reactions) (1 assignee)Java (5,146 stars) (1,915 forks)batch import
coregood first issueimprovement

Description

Feature Request / Improvement

Description

RewriteTablePathUtil.rewriteDVFile currently rewrites deletion vector (DV) Puffin files by reading all rewritten blobs into an in-memory list before writing them out, which can create unnecessary memory pressure when rewriting larger DV files or files with many blobs.

Suggested improvement

Refactor RewriteTablePathUtil.rewriteDVFile to stream rewritten blobs directly to the output PuffinWriter while iterating through the source blobs, instead of collecting all rewritten blobs into a temporary list first.

Query engine

None

Willingness to contribute

  • I can contribute this improvement/feature independently
  • I would be willing to contribute this improvement/feature with guidance from the Iceberg community
  • I cannot contribute this improvement/feature at this time

Contributor guide