mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2026-05-17 08:36:55 +03:00
This reverts commitb3c03c023c. Reason for revert: the original logic was correct from the user's perspective: - The -maxRequestBodySizeToRetry command-line flag controls the size of the request body, which could be retried on backend failure. The meaining of this flag wasn't changed after the introduction of the -requestBufferSize flag in the commite31abfc25c(see https://github.com/VictoriaMetrics/VictoriaMetrics/issues/10309 ) - The -requestBufferSize flag controls the size of the buffer for reading request body before sending sending it to the backend and before applying concurrency limits. These flags are independent from user's perspective. The fact that these flags share the implementation, sholdn't be known to the user - this is an implementation detail, which allows avoiding double buffering. Both flags enable request buffering. If the user wants disabling of all the request buffering, then both flags must be set to 0. That's why these flags are cross-mentioned in their -help descriptions. Also the reverted commit had the following issues: - It reduced the default value for the -requestBufferSize flag from 32KiB to 16KiB. The 32KiB value has been calculated and justified at https://github.com/VictoriaMetrics/VictoriaMetrics/issues/10309 . It shouldn't increase vmagent memory usage too much for typical workloads. For example, if vmagent handles 10K concurrent requests, then the memory overhead for the request buffering will be 10K*32KiB=320MiB. This is a small price for being able to efficiently handling 10K concurrent requests. - It added a dot to the end of the https://docs.victoriametrics.com/victoriametrics/vmauth/#request-body-buffering link in the description for the description of the -requestBufferSize flag. This breaks clicking the link in some environments, since the trailing dot is considered as a part of the url. - It added a superflouous whitespace in front of the 'Disabling request buffering' text inside the description for the -requstBufferSize flag. - It introduced an unnecessary complexity to the user by mentioning that the zero value at -maxBufferSize disables buffering for request reties (these things must be independent from the user's perspective). - It changed the bufferedBody logic in non-trivial ways, which aren't related to the original issue. If these changes are needed, then they must be justified in a separate issue and must be prepared in a separate pull request / commit. Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/10675 Updates https://github.com/VictoriaMetrics/VictoriaMetrics/pull/10677