1. 21 Dec, 2015 2 commits
    • Tatsuhiro Tsujikawa's avatar
    • Tatsuhiro Tsujikawa's avatar
      Don't schedule response HEADERS with priority tree · ca4a40b8
      Tatsuhiro Tsujikawa authored
      Previously we scheduled the transmission of response HEADERS using
      priority tree in the belief that it allows more better utilization of
      bandwidth for prioritized streams.  But to reduce the overhead of
      reconstruction of priority queue when connection level flow control
      window is depleted, we just don't check priority tree in this case.
      This means that response HEADERS frames are not sent even though they
      are not flow controlled.  This could waste bandwidth.  To improve this
      situation, we stop scheduling response HEADERS with priority tree for
      now.  Now they are just sent in the order they submitted.  The
      response body DATA continued to be scheduled with priority tree as
      before.
      ca4a40b8
  2. 20 Dec, 2015 7 commits
  3. 19 Dec, 2015 5 commits
  4. 18 Dec, 2015 1 commit
  5. 17 Dec, 2015 3 commits
  6. 16 Dec, 2015 2 commits
  7. 15 Dec, 2015 3 commits
  8. 14 Dec, 2015 1 commit
  9. 11 Dec, 2015 1 commit
  10. 10 Dec, 2015 5 commits
  11. 09 Dec, 2015 1 commit
  12. 08 Dec, 2015 4 commits
  13. 07 Dec, 2015 2 commits
    • Tatsuhiro Tsujikawa's avatar
      Reschedule stream when only weight is changed · 4bcc14fc
      Tatsuhiro Tsujikawa authored
      Previously, we only updated stream's weight field when only weight was
      changed by PRIORITY frame.  If stream is queued, it would be better to
      actually reschedule it based on new weight.  This could be especially
      useful if weight is increased.
      4bcc14fc
    • Tatsuhiro Tsujikawa's avatar
      Update descendant_last_cycle on nghttp2_stream_next_outbound_item · 72f815d5
      Tatsuhiro Tsujikawa authored
      Previously, we updated descendant_last_cycle in
      nghttp2_stream_reschedule, which is called after non-zero DATA frame.
      But this was not optimal since we still had old descendant_last_cycle,
      and new stream was scheduled based on it.  Now descendant_last_cycle
      is updated in nghttp2_stream_next_outbound_item, which is called when
      stream with highest priority is selected from queue.  And new stream
      is scheduled based on it.  This commit also removes 0-reset of
      descendant_last_cycle and cycle in nghttp2_stream_reschedule.  This
      could help making them lower, so that they are not overflow.  But
      there is a pattern that it doesn't work, and we are not sure they are
      really useful at this moment.
      72f815d5
  14. 04 Dec, 2015 3 commits