nghttp2 - HTTP/2 C Library and tools
Go to file
Tatsuhiro Tsujikawa a11fbf6e2f Optimize connection level remote flow control
Previously when connection level remote flow control window gets 0, we
mark the stream having DATA frame with
NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL.  When connection level
WINDOW_UPDATE is received, we checks all existing streams, including
closed ones, and call nghttp2_stream_resume_deferred_data().  The
profiler shows this is expensive.

Now we prepare dedicated priority queue for DATA frames.  And we don't
mark stream with NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL when DATA
cannot be sent solely due to connection level flow control.  Instead,
we just queue DATA item to queue.  We won't pop DATA item from queue
when connection level remote window size is 0.  This way, we avoid the
expensive operation for all streams when WINDOW_UPDATE is arrived.
2014-09-26 00:01:51 +09:00
doc doc: Add doc how to enable multi threading in libnghttp2_asio 2014-09-24 00:45:40 +09:00
examples src: Add utility APIs to asio_http2.h; add asio-sv2 example to serve files 2014-09-24 23:05:13 +09:00
fedora fedora: add spec file 2012-10-27 14:54:06 -07:00
lib Optimize connection level remote flow control 2014-09-26 00:01:51 +09:00
m4 Add C++ library libnghttp2_asio on top of libnghttp2 2014-09-24 00:45:40 +09:00
python python: Add version 2014-08-26 23:52:19 +09:00
src nghttpx: Don't send x-forwarded-proto if -s or -p is used 2014-09-25 00:41:38 +09:00
tests Optimize connection level remote flow control 2014-09-26 00:01:51 +09:00
third-party Update http-parser to 8d9e5db981b623fffc93657abacdc80270cbee58 2014-05-16 00:23:03 +09:00
.gitignore Add libnghttp2_asio.pc to .gitignore 2014-09-24 00:45:40 +09:00
.travis.yml Add make check to Travis 2014-08-08 13:20:48 +02:00
AUTHORS Added libtool files 2012-01-18 00:53:12 +09:00
COPYING Add text dealing license around contribution to COPYING 2014-08-17 15:10:57 +09:00
ChangeLog Added libtool files 2012-01-18 00:53:12 +09:00
Makefile.am Add Makefile for MSVC 2014-08-27 23:54:29 +09:00
NEWS Rebranding nghttp2 2013-07-13 00:43:06 +09:00
README Added libtool files 2012-01-18 00:53:12 +09:00
README.rst Update README.rst 2014-09-25 02:08:09 +09:00
android-config Compile with android NDK r10b 32bit target 2014-09-14 21:32:53 +09:00
android-make Replace HTTP/2.0 with HTTP/2 2014-03-30 19:26:37 +09:00
configure.ac Lower boost version requirement to 1.54.0 2014-09-24 21:07:37 +09:00
gennmchartbl.py Reformat valid character table for header field name/value pair 2014-01-04 11:19:07 +09:00
genvchartbl.py Reformat valid character table for header field name/value pair 2014-01-04 11:19:07 +09:00
makemanpages doc: Generate HTML version manual page from manpage 2014-07-09 00:38:43 +09:00
makerelease.sh Update release script 2014-02-05 23:12:53 +09:00
man2rst.py doc: Generate HTML version manual page from manpage 2014-07-09 00:38:43 +09:00
mkcipherlist.py nghttpx: Only allow DHE, ECDHE + AEAD ciphers for HTTP/2 2014-06-10 22:47:22 +09:00
mkhufftbl.py Reduce huffman decoding table 2014-05-31 00:19:30 +09:00
mkstatichdtbl.py Search static header table linearly 2014-07-20 19:13:56 +09:00
nghttpx.conf.sample Rename shrpx.conf.sample as nghttpx.conf.sample 2013-08-30 22:46:28 +09:00
proxy.pac.sample Add sample pac file and release script 2013-01-12 17:05:11 +09:00

README

See README.rst