TS-3535: Experimental Support of Stream Priority Feature in HTTP/2#525
TS-3535: Experimental Support of Stream Priority Feature in HTTP/2#525masaori335 wants to merge 1 commit intoapache:masterfrom masaori335:TS-3535
Conversation
|
Great to see this implemented, and thanks to everyone for sharing their experiences and algorithms at that Meetup, it was incredibly useful. Seeing that there are some pretty important issues, should we leave it disabled for now, with a records.config option to enable it? |
|
@zwoop see |
|
Perfect! |
|
@bryancall to review, if we land this with off by default it seems harmless. We do want to avoid STL when possible, but it is what it is :). |
|
Is it possible to make the priority queue stuff more generic so it can be reusable? |
|
@zwoop Should we avoid STL in test code too? I used |
|
@PSUdaemon Yes, it is! It is one of reasons of implemented Http2PriorityQueue using template. |
|
@masaori335, yes exactly. It does look very generic already and it seems valuable to have in lib/ts. I can't think of anything offhand that would need it, but if you are already adding it for H2 seems prudent to make it available to other things. |
|
+1 on adding it to lib/ts. As for STL, the general rule is that if something runs on the critical path (e.g. as part of the HttpSM, or normal transaction handling), where it is performance sensitive, we should make every effort to avoid STL. As a subsidiary to that, we should really think hard before using std::string on said critical path as well (there's generally little reason to use std::string there). Now, the exception here are two things:
That much said, don't use STL just for the hell of it. If there is a reasonable alternative to use in lib/ts, please use it. Dragging in STL does increase binary sizes, which could affect performance in other ways (such as worse L2/3 caches etc.). It also sets bad precedence, where someone seeing it used, makes the mistake and thinks it's ok to use everywhere. |
|
I spun out priority queue stuff as TS-4295. |
|
Now, FetchSM and PluginVC is removed from HTTP/2 components by TS-3612. It look like I need more works to rebase this on latest master. I'm going to close this once and reopen new Pull-Requests for v7.0.0 to avoid blocking v6.2.0 release. |
This is an experimental support of Stream Priority Feature. ( TS-3535 )
Approach
Issues