-
Notifications
You must be signed in to change notification settings - Fork 41
Description
Assuming Joining FETCH stays as is, there is an optimization to joining at the current Group that I believe is worth considering.
Just because there is a Largest Object, doesn't mean all Objects less than that are available. This means that a Joining FETCH could be blocked waiting for Objects the Relay has never seen.
For example, if there was a base layer and a temporal enhancement layer, and the base layer was higher priority, a Relay might have all of the base layer and none of the enhancement layer. If a Joining FETCH came in, the Subscriber would receive the first Object in the base layer and then be stuck there until the enhancement layer started arriving.
In some cases, this is just underutilizing the available bandwidth, but in other cases if the enhancement layer doesn't arrive within the delivery timeout, the playback can't begin.
In contrast, if both the Joining FETCH and SUBSCRIBE start at the beginning of the current Group, the FETCH could skip over any Objects (PR #1331) that are not yet available and then they'd be delivered via SUBSCRIBE.
The farther back in time the FETCH is, the less likely this is an issue, but I think it could be a substantial issue for the "Join at the current Group" case that we expect to be extremely common.