- From: Nick Harper <nharper@google.com>
- Date: Mon, 8 Jul 2019 16:05:50 -0700
- To: Patrick Meenan <patmeenan@gmail.com>
- Cc: Robin MARX <robin.marx@uhasselt.be>, HTTP Working Group <ietf-http-wg@w3.org>
- Message-ID: <CACdeXi+HpXH0qEtehp8FDJp3Ydi3Z2eiP9ZjQLR1CgR0Lh1JUA@mail.gmail.com>
I'm in favor of a simpler approach for H3 priorities, and something like Patrick Meenan's proposal sounds good. I like the simplicity and statelessness of that proposal. I don't foresee any issues with implementing it in Chrome, nor do I see any issues with needing to maintain separate priority implementations for H2 vs H3. I would prefer that a simpler proposal be the default (MTI) priority scheme used in H3. If there are applications that need the full expressivity and complexity of the H2 or draft-20 tree based approach to priorities, I think that would be better suited to an extension. On Wed, Jul 3, 2019 at 9:30 AM Patrick Meenan <patmeenan@gmail.com> wrote: > I don't know if we want it as an explicit goal but one of the main reasons > for my initial alternative proposal was that it is stateless which makes it > easier for application logic outside of the connection-owning code to > reason about and influence prioritization. That can always be handled by a > translation from something proprietary into a tree at the actual connection > but having both sides speak the same stateless model makes it a lot > cleaner. > > On Wed, Jul 3, 2019 at 12:11 PM Robin MARX <robin.marx@uhasselt.be> wrote: > >> Hello everyone, >> >> As I expect most of you know, there has been quite a bit of talk over at >> the QUIC / HTTP/3 working group recently on what to do with the dependency >> tree / prioritization system from HTTP/2 in H3. >> >> There are two major issues: >> - There a a few subtle HOL-blocking issues in porting the system to H3 >> due to the way streams work in QUIC >> - Quite a few people feel H2's approach is overly complex and can/should >> be simplified >> >> For now, the QUIC wg has taken the stance to try and stay as close to H2 >> as possible (e.g., exclusive priorities had been removed before, but are >> now back in the editor's draft of HTTP/3). >> The QUIC wg wishes to see more real implementation experience and >> experimental results for new proposals before considering them. It also >> feels this issue is best discussed in the httpbis wg. And thus we come to >> this email. >> >> We have been recently running some prioritization experiments for a >> variety of schemes and proposals using our own HTTP/3 implementation in the >> Quicker project. >> We have discussed our findings in a paper, which you can find in >> attachment and also on https://h3.edm.uhasselt.be. >> >> The paper attempts to provide a rather extensive discussion of the issues >> with H2's setup, H3's approaches so far and the alternative proposals that >> have been made. >> As I appreciate not everyone has the time to read all of that, our main >> findings are: >> >> 0) The current proposal (which should be "draft-21" soon) for HTTP/3 >> works well in practice, though the semantics of the "orphan placeholder" >> might still need to be tweaked a bit. >> >> 1) Simpler setups are also perfectly viable.. The main contender, from >> Patrick Meenan ( >> https://github.com/pmeenan/http3-prioritization-proposal/blob/master/README.md) >> would be a good candidate for this. >> >> 2) However, there is no single scheme that produces ideal results for all >> web pages (e.g., the scheme that is best for page A can perform really >> badly for page B). So dropping everything for a single, simpler approach is >> potentially sub-optimal. Similarly, the current approach of browsers of >> just using a single scheme for all pages might need revision. >> >> 3) Ideally, we should thus allow the scheme to be tweaked per-page, >> either via a mechanism where the server indicates the optimal scheme to the >> client (which we propose in the paper), or where the client communicates >> additional metadata to the server (e.g., resource is blocking/non-blocking, >> can be processed progressively, ...) to make server-side prioritization >> easier (Kazuho Oku is working on a proposal for this, but doesn't feel it's >> ready to share here yet). >> >> 4) In order to make progress on H3, it's probably best to stick with the >> draft-21 approach (potentially with a few more small tweaks) and define a >> new approach as an extension or implement it at the higher HTTP layer >> (i.e., as HTTP headers, rather than H3 frames). However, would that then >> find enough adoption fast enough... >> >> While I'll be the first to admit our study isn't terribly extensive or >> fully realistic (we tested 40 pages in lab settings without a real >> browser), I still feel our results are enough to have a basis to continue >> the discussion on. We of course encourage others to share their results as >> well. >> Some more background information can be found here as well: >> https://github.com/quicwg/wg-materials/blob/master/interim-19-05/priorities.pdf >> >> I'm a bit unsure what the best questions are to ask at this point, but >> some attempts: >> - Are implementers willing to implement 2 completely different approaches >> (1 for H3, 1 for H2)? >> - Are (browser) implementers willing to consider supporting multiple >> schemes (specific trees)? >> - Are (server) implementers willing to create/support more complex >> (user-driven) server-side prioritization config/APIs? >> - How important is it to move to a simpler (and thus less flexible) >> setup? >> - Should this be a blocker for HTTP/3 or not? >> >> Looking forward to your feedback. >> With best regards, >> Robin >> >> -- >> >> Robin Marx >> PhD researcher - web performance >> Expertise centre for Digital Media >> >> T +32(0)11 26 84 79 - GSM +32(0)497 72 86 94 >> >> www.uhasselt.be <http://www.uhasselt..be> >> Universiteit Hasselt - Campus Diepenbeek >> Agoralaan Gebouw D - B-3590 Diepenbeek >> Kantoor EDM-2.05 >> >> >>
Received on Monday, 8 July 2019 23:36:56 UTC