[moving followups to dev.tech.network, as this seems to be more
network-focused at this point.]

On May 21, 12:17 pm, Alan Ogilvie <[email protected]> wrote:
> *) For the 'http.max...' configuration settings and current 'pipeline'
> usage - it would be nice to see a couple of things live in Firefox: a) the
> actual usage of the different HTTP slots for a particular tab/window b) the
> total for the entire browser - this sounds like something difficult to see,
> but given the general 'add-on' world of Firefox... is that something that
> could be exposed? (not for public consumption perhaps)

It certainly ought to be possible to write an addon to do this.  I
don't know if anyone has.

> *) Background Tabs - [theory] seem to throttle bandwidth, likely to reduce
> impact on foreground tabs, resulting in Flash HDS players that employ an
> adaptive bitrate algorithm to fall back to the lowest bitrate available.

It's true that we prioritize the foreground tab's channels.  But the
only notion of "priority" we have right now (this may need to change
at some point) is that higher-priority requests sit at the head of the
wait queue if there are more requests than available HTTP
connections.   Once a request has been issued on the wire, we treat it
the same as any other, so you get whatever rate TCP winds up giving
you in the presence of multiple TCP streams being open (i.e. a bit of
a crapshoot).  The API I talked about on dev.tech.network (that allows
you to set a channel to download with a 'smooth' constant rate) may
help with this.  For now channel loading is 'bursty', but so long as
there's close to enough aggregate bandwidth for all the channels being
loaded, and you have decent amount of buffering, you'll be ok.   You
may be right that this sort of thundering herd approach might make a
channel that loses the TCP bandwidth sweepstakes decide to pick a
lower-quality video than it needs to.  We'll probably need smarter
logic to deal with this at some point.

> *) I wonder if pipelining happens on the HDS fragment requests - is there a
> 'smoking gun' that makes this easy to spot. I'm assuming we'd prefer
> pipelining, right?

Http pipelining mainly reduces latency, which is not really much of an
issue in bandwidth-dominated apps like streaming.  You probably
*don't* want to pipeline stream requests, because that essentially
ties the 2nd and further requests to a particular connection, when
they could otherwise grab any available connection that becomes
available.  Worse, if other, small resources needed for a page are
pipelined behind a stream, it will be a *long* time before they are
satisfied (I believe Patrick wrote some logic that separates different
content types onto different connections precisely to avoid this
issue, known as "head of line blocking").

> *) Seems like these http.max... settings vary between Firefox versions, do
> they vary on platform? (what's the 'size' of the 'problem', should I be
> more concerned)

The only cases that might cause you grief are for users using proxies
(8 max connections will be an issue if you want to show a number of
streams that approaches--or, obviously, exceeds--8.   Mobile will also
be an issue until we increase the number of max-http connections there
(it's currently only 6, vs 256 on desktop).  I can't imagine people
streaming more than a few videos on a mobile phone today, but on
android tablets it seems more likely.  The likely solution here is to
increase the limits if we see trouble happening, and then see how
badly that breaks existing proxy servers and mobile phones (not much
fun, but I don't see a better fix).

> *) I am trying to speak to our contacts in Adobe to see what they think about 
> browser cache implications for HDS, and I suspect this will have an impact on 
> their MPEG-DASH thinking too. Do you know if you have had any contact with 
> them around this?

none that I've heard of.

> *) additional use of SPDY could speed up these sort of fragment requests -
> though support seems limited. I'd not considered that before.

What sort of frequent requests?  SPDY, like pipelining, is mainly
geared to avoiding the latency of lots of little requests, so it's
unlikely to make a difference with the large chunks involved in
streaming.

cheers,

Jason
Mozilla

_______________________________________________
dev-media mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-media

Reply via email to