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

   ### Purpose
   
   Add a table option to cap how long HTTP connections used by 
descriptor-backed BLOB reads remain eligible for reuse after a response 
completes.
   
   `blob-descriptor.http.keep-alive-timeout` is unset by default, so existing 
behavior remains unchanged. This option is an idle connection reuse cap; it is 
not a connect, socket, or response-body timeout.
   
   ### Changes
   
   - Propagate the option through Flink dynamic sink options, serialized URI 
reader factories, and source-table descriptors.
   - Use the shorter of the server-advertised keep-alive duration and the 
configured client cap.
   - Apply the cap to HEAD probes, initial GET requests, range resume requests, 
and replay requests.
   - Isolate explicitly configured BLOB reads in a dedicated connection pool so 
the option does not affect REST Catalog traffic or unconfigured reads.
   - Preserve the existing FileIO context and credentials for non-HTTP 
descriptors.
   - Document the target-table OPTIONS hint.
   
   ### Relationship to #9271
   
   #9271 recovers response bodies that are truncated while an active GET is 
being consumed. This change addresses a different boundary: it limits reuse of 
idle pooled connections after a response has completed. The two mechanisms are 
complementary; configuring this option does not replace body-truncation 
recovery.
   
   ### Scope and performance
   
   Unconfigured reads keep using the existing shared client and behavior. 
Configured BLOB reads use a separate bounded pool (100 total/per route). Before 
leasing a configured connection, idle entries older than the requested cap are 
removed; a smaller cap can reduce connection reuse but does not interrupt 
leased or active response streams.
   
   ### Tests
   
   - `HttpClientUtilsTest` (39 tests)
   - `UriReaderFactoryTest` and `BlobDescriptorUtilsTest` (20 tests)
   - `CoreOptionsTest` and `BlobDescriptorReaderFactoryTest` (18 tests)
   - `BlobTableITCase#testWriteBlobWithHttpUrlDescriptor`
   - `ConfigOptionsDocsCompletenessITCase`
   - Spotless and `git diff --check`
   
   ### API and format
   
   This adds one optional table configuration key. It does not change the BLOB 
descriptor or table storage format.


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