Commit Graph
3 Commits
Author SHA1 Message Date
Chris Lu aff9aa7fa5 fmt 2025-12-01 10:34:10 -08:00
Chris Lu 2f007425c0 http: disable HTTP/2 to enable parallel connections
This fixes the mount read throughput issue where HTTP GET requests to the
same volume server were being serialized even with high -concurrentReaders.

The issue was that:
1. HTTP/2 multiplexes all requests over a single TCP connection
2. Even with HTTP/1.1, ForceAttemptHTTP2 defaults to true in Go

Changes:
- Set ForceAttemptHTTP2: false on http.Transport to disable HTTP/2
- Set MaxConnsPerHost: 0 (unlimited) to allow parallel connections per host
- For HTTPS, set NextProtos to only 'http/1.1' to prevent HTTP/2 negotiation

This allows multiple goroutines to use separate TCP connections to the same
volume server, enabling true parallel chunk fetching and better network
bandwidth utilization.

Relates to: #7504
2025-12-01 09:52:18 -08:00
vadimartynov 86d92a42b4 Added tls for http clients (#5766)
* Added global http client

* Added Do func for global http client

* Changed the code to use the global http client

* Fix http client in volume uploader

* Fixed pkg name

* Fixed http util funcs

* Fixed http client for bench_filer_upload

* Fixed http client for stress_filer_upload

* Fixed http client for filer_server_handlers_proxy

* Fixed http client for command_fs_merge_volumes

* Fixed http client for command_fs_merge_volumes and command_volume_fsck

* Fixed http client for s3api_server

* Added init global client for main funcs

* Rename global_client to client

* Changed:
- fixed NewHttpClient;
- added CheckIsHttpsClientEnabled func
- updated security.toml in scaffold

* Reduce the visibility of some functions in the util/http/client pkg

* Added the loadSecurityConfig function

* Use util.LoadSecurityConfiguration() in NewHttpClient func
2024-07-16 23:14:09 -07:00