This is an automated email from the ASF dual-hosted git repository.

xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opendal.git


The following commit(s) were added to refs/heads/main by this push:
     new 423a2874e docs: Add doc for http config (#7244)
423a2874e is described below

commit 423a2874e8ac7c5184729a7ca570f4eed6d8bd41
Author: dentiny <[email protected]>
AuthorDate: Wed Mar 18 02:01:40 2026 -0700

    docs: Add doc for http config (#7244)
    
    [doc] Add doc for http config
---
 core/core/src/docs/performance/http_optimization.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/core/core/src/docs/performance/http_optimization.md 
b/core/core/src/docs/performance/http_optimization.md
index 83e2b6df5..67313bdb8 100644
--- a/core/core/src/docs/performance/http_optimization.md
+++ b/core/core/src/docs/performance/http_optimization.md
@@ -10,7 +10,9 @@ Please note that the following optimizations are based on 
experience and may not
 
 According to benchmarks from OpenDAL users, `HTTP/1.1` is generally faster 
than `HTTP/2` for large-scale download and upload operations.
 
-`reqwest` tends to maintain only a single TCP connection for `HTTP/2`, relying 
on its built-in multiplexing capabilities. While this works well for small 
files, such as web page downloads, the design is not ideal for handling large 
files or massive file scan OLAP workloads.
+`reqwest` tends to maintain only a single TCP connection for `HTTP/2`, relying 
on its built-in multiplexing capabilities. There is a [known 
issue](https://github.com/hyperium/hyper/issues/3623) in the underlying 
`hyper-util` HTTP util library: an HTTP/2 connection will remain in the pool 
and continue to be reused unless it is poisoned or closed after an idle 
timeout, even when the connection's max concurrent streams limit has been 
reached, or the TCP connection is exhausted (i.e., close  [...]
+
+For HTTP/1.1, new connections will be created whenever there's no idle ones in 
the pool. While it solves the connection reuse issue, it also brings up 
possibility of excessive TCP connection. It's suggested to set a max concurrent 
request limit to avoid server overload and host bandwidth exhaustion.
 
 When `HTTP/2` is disabled, `reqwest` falls back to `HTTP/1.1` and utilizes its 
default connection pool. This approach is better suited for large files, as it 
allows multiple TCP connections to be opened and used concurrently, 
significantly improving performance for large file downloads and uploads.
 

Reply via email to