Convert HTTPSession to use HTTP2PriorityQueue
commite406606bb25311bb12d11557f685efd50be9c7cc
authorAlan Frindell <afrind@fb.com>
Thu, 19 Nov 2015 21:38:48 +0000 (19 13:38 -0800)
committerhhvm-bot <hhvm-bot@fb.com>
Sat, 21 Nov 2015 05:04:33 +0000 (20 21:04 -0800)
tree66c1d24ebc9c82f7e39a23827d24bec07745d5ec
parent22887df5fd5e3f58652027800b5f4212e0af7c6c
Convert HTTPSession to use HTTP2PriorityQueue

Summary: This replaces the SPDY priority queue with the HTTP2PriorityQueue.  SPDY is mapped into the HTTP/2 Queue by means of 8 virtual nodes in the tree, one for each priority level.  The egress algorithm has changed, and getNextToSend() can add egress from more than one transaction per call.  It will add some egress from every enqueued transaction at a particular level of the tree.  This could now exceed 64k per call as we have a minimum egress of limit/2 (2kb), up to what the session window allows.  The alternative is to make an HTTP2PriorityQueue iterator that keeps some state about which nodes at the egress level have not yet called onWriteReady.

Reviewed By: xiaosophiawang

Differential Revision: D2197984

fb-gh-sync-id: cfa153aa055b0eb7a801ce8891fb717b835d30c6
hphp/runtime/server/proxygen/proxygen-transport.cpp