Stephen0421 opened a new pull request, #10114: URL: https://github.com/apache/paimon/pull/10114
### Purpose Part of the primary-key BLOB split (#9099), after the descriptor format (#9539), the read path (#9608), and keeping BlobViewStruct bytes when blob-as-descriptor is true (#10057). - Add the `.blobref` sidecar format and `ManagedBlobReferenceCollector`. The on-disk layout matches Java `ManagedBlobReferenceFile` (magic, version 1, modified UTF-8, CRC of the payload only). The collector is a library and is not wired into the primary-key writer. - Commit abort deletes sidecar paths listed in `extra_files` (`.blobref`, `.row`). When a BlobConsumer owns the packs, paths ending in `.blob` (including `.managed.blob`) are left in place. - `prepare_commit` still returns a copy and leaves file ownership on the writer, so `writer.abort()` deletes uncommitted data files. Batch HASH index files stay owned until abort; only stream prepare releases them. Not in this change: `BlobFormatWriter._copy_exactly`, primary-key managed-BLOB writes, or the read/view path. ### Tests - [x] `managed_blob_reference_file_test` (round trip, fixed Java-compatible fixture, truncated file, abort-then-close) - [x] `managed_blob_lifecycle_test` (sidecar deletion, consumer-owned packs preserved, resolved data file deleted when extras fail) - [x] `managed_blob_write_ownership_test` (prepare keeps writer ownership; BlobConsumer sets the preserve flag) - [x] `test_blob_abort_deletes_uncommitted_files`, `test_vector_abort_deletes_uncommitted_files`, `test_vector_close_failure_after_prepare_raises` - [x] `test_update_by_row_id_aborts_files_after_prepare_commit_failure` - [x] `test_batch_writer_abort_after_prepare_deletes_hash_index`, `test_stream_writer_releases_prepared_hash_index_ownership` - [x] `test_multi_prepare_commit_ao`, `test_multi_prepare_commit_pk` -- 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]
