Stephen0421 opened a new pull request, #10570:
URL: https://github.com/apache/paimon/pull/10570

   ### Purpose
   
   Primary-key Python writes externalize managed BLOB payloads into 
`.managed.blob` packs and store table-relative descriptors in the data file. 
Each data file's `extra_files` lists the `.blobref` sidecar and the pack names 
that file references. A pack may be listed on more than one data file when 
those files share it.
   
   When `blob-as-descriptor` is false, primary-key reads resolve those 
descriptors against the table directory and return payload bytes. Append tables 
still use dedicated `.blob` files and are unchanged.
   
   `commit.abort` deletes the aborted data files and their `.blobref` sidecars. 
A `.managed.blob` pack is deleted only when no `.blobref` outside that abort 
still names it, so aborting one file does not destroy a pack that a committed 
file still uses. Aborting every file that references a pack still removes the 
pack. Writer abort deletes packs that have not been handed to a data file. 
Packs already given to a `BlobConsumer` stay in place.
   
   ### Tests
   
   - Primary-key write registers `.blobref` and `.managed.blob` on 
`extra_files`, and `new_read_builder()` returns payload bytes.
   - Partial `commit.abort` keeps a pack that committed files still reference, 
and those rows still read back.
   - Full abort deletes packs that no surviving `.blobref` references.
   - Append dedicated-blob reads still return payload bytes.


-- 
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]

Reply via email to