Neuw84 opened a new pull request, #17281:
URL: https://github.com/apache/iceberg/pull/17281

   …ites
   
   Position delta writes (MERGE/UPDATE/DELETE in merge-on-read mode) broadcast 
a map of every scanned data file with position deletes to its full DeleteFile 
metadata. Executors only need enough of it to locate and read the previous 
delete content (location, format, sizes, key metadata, DV offsets) and to 
identify files back to the driver; partition data, column bounds and counts 
ride along only to be echoed back for RowDelta.removeDeletes at commit time.
   
   Under streaming upserts against v3 DV tables this map converges to one entry 
per data file in the table and is rebuilt and re-broadcast every micro-batch, 
adding driver and executor memory pressure that grows with table age.
   
   Keep the full map driver-local, broadcast slim copies built via 
FileMetadata.deleteFileBuilder (with referencedDataFile normalized so 
file-scoped checks keep working without the file_path column bounds), and 
resolve reported rewritten files back to their full metadata at commit time 
before calling removeDeletes. The resolution step is required for correctness 
of the slimming: manifest filtering uses the removed file's spec ID and 
partition, which slim copies do not carry, so reported rewritten files must 
never reach the RowDelta directly.
   
   Measured serialized size of the broadcast map (1000 entries, Java 
serialization - Spark's default broadcast serializer):
   
     map contents                        full          slim         factor
     DV entries (v3)                     661 B/entry   466 B/entry   1.4x
     v2 file-scoped entries with stats  1069 B/entry   581 B/entry   1.8x
   
   The serialized win is bounded by what slimming cannot remove (the data file 
location key and the referenced data file location dominate each entry); the 
deserialized heap saving per executor is larger because the per-entry object 
graph (partition data, stats maps, split offsets) is gone. Commit messages 
shrink correspondingly, since executors echo the slim copies back as rewritten 
files.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to