]> git.kaiwu.me - nginx.git/commit
HTTP/2: optimized processing of small DATA frames.
authorMaxim Dounin <mdounin@mdounin.ru>
Mon, 6 Sep 2021 11:54:50 +0000 (14:54 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Mon, 6 Sep 2021 11:54:50 +0000 (14:54 +0300)
commit243469df65fca2a853c6fe32754d1bfe19567cd2
tree046d8a9b39d112b573a409447fefe1732a672b26
parent584a30b4d51302755c5600892fc293b1586985f7
HTTP/2: optimized processing of small DATA frames.

The request body filter chain is no longer called after processing
a DATA frame.  Instead, we now post a read event to do this.  This
ensures that multiple small DATA frames read during the same event loop
iteration are coalesced together, resulting in much faster processing.

Since rb->buf can now contain unprocessed data, window update is no
longer sent in ngx_http_v2_state_read_data() in case of flow control
being used due to filter buffering.  Instead, window will be updated
by ngx_http_v2_read_client_request_body_handler() in the posted read
event.
src/http/v2/ngx_http_v2.c