Add http2.default_buffer_water_mark config to tune latency#8747
Merged
randall merged 1 commit intoapache:masterfrom May 4, 2022
Merged
Add http2.default_buffer_water_mark config to tune latency#8747randall merged 1 commit intoapache:masterfrom
randall merged 1 commit intoapache:masterfrom
Conversation
658841b to
17c1396
Compare
Contributor
Author
|
[approve ci fedora] |
Member
|
@randall I dont think its stuck, just had another fedora failure. It looks like autest is running though so let that one finish first and then can retry just fedora |
Contributor
|
@keesspoelstra is going to review this. Thanks in advance! |
797c9d3 to
67bdb2d
Compare
Contributor
|
I will take a look at this PR too. |
bryancall
reviewed
Apr 16, 2022
| payload_length = 0; | ||
| } | ||
|
|
||
| if (payload_length > 0 && this->session->is_write_high_water()) { |
Contributor
There was a problem hiding this comment.
You are not going to send data to the client unless there is 32k to send?
Contributor
There was a problem hiding this comment.
If you're wondering about the timing of the this->session->flush(), it is called with several conditions.
- e.g. if the response body is 10 bytes, it'll be sent to the client immediately.
This is checking the high watermark of the session buffer to stop it keep growing.
bryancall
reviewed
Apr 16, 2022
67bdb2d to
0b0a988
Compare
0b0a988 to
5e6e160
Compare
bryancall
approved these changes
May 4, 2022
zwoop
pushed a commit
that referenced
this pull request
May 4, 2022
Co-authored-by: Masaori Koshiba <masaori@apache.org> (cherry picked from commit 0f2d941)
moonchen
pushed a commit
to moonchen/trafficserver
that referenced
this pull request
May 26, 2022
* asf/9.2.x: Updated ChangeLog Add http2.default_buffer_water_mark config to tune latency (apache#8747) Updated ChangeLog Updated ChangeLog Revert remap.config loading changes (apache#8803)
bneradt
added a commit
that referenced
this pull request
Apr 3, 2024
When I ported #8747 into HTTP/2 to origin logic, I missed setting the watermark on outgoing connections. This essentially made it so that regardless of configuration, POST requests or the like would always send every little bit of DATA frames regardless of the configured watermark. The watermark was effectively zero on the server side. This patch fixes that by appying the configured watermark. This patch also fixes the HTTP/2 write_time_threshold configuration so it consistently wakes up ATS to transmit the frames held up behidn write_buffer_threshold. If the write_buffer_threshold is not met, then I noticed ATS never woke up to send the accumulated frames until a xmit with a flush was sent at the end of the transaction. This ensures that the frames are transmitted per the write_time_threshold by scheduling an event for the retransmission. Here's a list of changes made in this patch: * Adding a write_threshold test * Set buffer watermark for origin h2 connections * HTTP2_SESSION_EVENT_XMIT -> HTTP2_SESSION_EVENT_PRIO * schedule flushing event for write_time_threshold
cmcfarlen
pushed a commit
that referenced
this pull request
Apr 5, 2024
When I ported #8747 into HTTP/2 to origin logic, I missed setting the watermark on outgoing connections. This essentially made it so that regardless of configuration, POST requests or the like would always send every little bit of DATA frames regardless of the configured watermark. The watermark was effectively zero on the server side. This patch fixes that by appying the configured watermark. This patch also fixes the HTTP/2 write_time_threshold configuration so it consistently wakes up ATS to transmit the frames held up behidn write_buffer_threshold. If the write_buffer_threshold is not met, then I noticed ATS never woke up to send the accumulated frames until a xmit with a flush was sent at the end of the transaction. This ensures that the frames are transmitted per the write_time_threshold by scheduling an event for the retransmission. Here's a list of changes made in this patch: * Adding a write_threshold test * Set buffer watermark for origin h2 connections * HTTP2_SESSION_EVENT_XMIT -> HTTP2_SESSION_EVENT_PRIO * schedule flushing event for write_time_threshold (cherry picked from commit 66940f5)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.