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.