Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTP/3 is lacking priorities #3198

Closed
RyanTheOptimist opened this issue Nov 6, 2019 · 9 comments
Closed

HTTP/3 is lacking priorities #3198

RyanTheOptimist opened this issue Nov 6, 2019 · 9 comments
Labels
-http design An issue that affects the design of the protocol; resolution requires consensus. future-version An issue that is best addressed in a future version of QUIC, or an extension to it. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.

Comments

@RyanTheOptimist
Copy link
Contributor

Since HTTP/3 is a multiplexed protocol (just as HTTP/2 was) a sender which is servicing multiple requests needs some way to decide which request to send data on. HTTP/2 used a ... baroque ... prioritization scheme that this working groups has decided (rightly, IMO) is a poor fit for HTTP/3. Before shipping HTTP/3 we should settle on some prioritization mechanism for HTTP/3. (Possible a very simple scheme with the opportunity for extensions to provide more sophisticated schemes.)

@martinthomson
Copy link
Member

Correction: HTTP/3 lacks a means of signaling priority. That distinction gets lost too often here.

@RyanTheOptimist
Copy link
Contributor Author

Well, HTTP/3 the specification lack priorities in any form whatsoever :)

But yes, you're totally right that an HTTP/3 endpoint implementation can do prioritization based on locally available information. What is lacking is a way for and endpoint to provide information to the peer to facilitate the prioritization.

I'll be interested to see what sort of normative language we end up with for how an endpoint is required (or not) to act on this information.

@LPardue
Copy link
Member

LPardue commented Nov 6, 2019

Request order is an implicit signal. In the absence of anything else I would borrow the text from RFC 7540

... input to a prioritization process.  It does not guarantee any particular processing or transmission order for the stream relative to any other stream.  An endpoint cannot force a peer to process concurrent streams in a particular order...

As discussed elsewhere, a sane default recommendation for servers based on request order might be useful.

But I hope we as a group can come up with a slightly better more complete answer.

@mnot mnot added the design An issue that affects the design of the protocol; resolution requires consensus. label Nov 25, 2019
@mnot mnot added this to Design Issues in Late Stage Processing Nov 25, 2019
@mnot mnot added the parked An issue that we can't immediately address; for future discussion. label Nov 29, 2019
@larseggert
Copy link
Member

I'd like to see if we can "unpark" this issue and move it forward in some way. Any suggestions?

@MikeBishop
Copy link
Contributor

The draft exists and is being worked on in the HTTP WG. If that is close to completion, a reference from HTTP/3 seems like it would fix this. However, I think the intent of parking is to signal that we don't plan to wait for that draft if it's not done.

@larseggert
Copy link
Member

I guess that draft is draft-ietf-httpbis-priority? It seems to lack a milestone.

@larseggert
Copy link
Member

I'm going to mark this as v2 for now. We can unmark it if the HTTP work progresses faster than we do, and we decide to incorporate it in some way.

@larseggert larseggert added future-version An issue that is best addressed in a future version of QUIC, or an extension to it. and removed parked An issue that we can't immediately address; for future discussion. labels Apr 27, 2020
@larseggert larseggert moved this from Design Issues to Consensus Declared in Late Stage Processing Apr 27, 2020
@larseggert larseggert moved this from Consensus Declared to Text Incorporated in Late Stage Processing Apr 27, 2020
@LPardue LPardue added parked An issue that we can't immediately address; for future discussion. and removed future-version An issue that is best addressed in a future version of QUIC, or an extension to it. labels Apr 28, 2020
@LPardue
Copy link
Member

LPardue commented Apr 28, 2020

Since this is a design issue, we'll run this through the Late-stage process and include it in the next consensus call.

The proposal is to:

mark this as v2 for now. We can unmark it if the HTTP work progresses faster than we do, and we decide to incorporate it in some way.

@LPardue LPardue added proposal-ready An issue which has a proposal that is believed to be ready for a consensus call. and removed parked An issue that we can't immediately address; for future discussion. labels Apr 28, 2020
@project-bot project-bot bot moved this from Issue Handled to Consensus Emerging in Late Stage Processing Apr 28, 2020
@LPardue LPardue added call-issued An issue that the Chairs have issued a Consensus call for. and removed proposal-ready An issue which has a proposal that is believed to be ready for a consensus call. labels Apr 29, 2020
@project-bot project-bot bot moved this from Consensus Emerging to Consensus Call issued in Late Stage Processing Apr 29, 2020
@LPardue LPardue added has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list. and removed call-issued An issue that the Chairs have issued a Consensus call for. labels May 13, 2020
@project-bot project-bot bot moved this from Consensus Call issued to Consensus Declared in Late Stage Processing May 13, 2020
@MikeBishop MikeBishop added the future-version An issue that is best addressed in a future version of QUIC, or an extension to it. label May 13, 2020
@MikeBishop
Copy link
Contributor

Marking as v2 and closing, per consensus call.

Late Stage Processing automation moved this from Consensus Declared to Issue Handled May 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-http design An issue that affects the design of the protocol; resolution requires consensus. future-version An issue that is best addressed in a future version of QUIC, or an extension to it. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.
Projects
Late Stage Processing
  
Issue Handled
Development

No branches or pull requests

6 participants