You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
At the moment, we use a single HTTP timeout for B <> O segment submission. The timer for this timeout starts when B submits a request to /segment and ends when B finishes reading the response body returned by O.
This timeout covers:
Segment upload time to O
Transcode time on O
Response time on O [1]
[1] Note rendition download time is not included here since the response from O to segment submission includes the URLs for the renditions which are downloaded separately.
If there are networking/bandwidth issues with O causing slow uploads, B could end up waiting the full HTTP timeout (defaults to 4x the segment duration) before it fails over to a different O. There is an opportunity to detect the networking/bandwidth issue with O earlier if B defined more granular timeouts in addition to the HTTP timeout for segment submission.
Describe the solution you'd like
A clear and concise description of what you want to happen.
B can define an upload timeout which is strictly shorter than the segment submission HTTP timeout. The upload starts when B submits a request to /segment and ends when B receives a response status from O [2]. If this upload exceeds the defined timeout, then B can fail over to a different O instead of waiting the full segment submission HTTP timeout. The upload timeout might be defined as segment duration * uploadTimeoutMultiplier where uploadTimeoutMultiplier could default to something like 0.5 such that a 2 second segment has a 1 second upload timeout.
[2] The transcoding protocol has O send back a response status to acknowledge that the upload completed before it starts sending back data in the response body which only begins when it completes transcoding.
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
At the moment, we use a single HTTP timeout for B <> O segment submission. The timer for this timeout starts when B submits a request to /segment and ends when B finishes reading the response body returned by O.
This timeout covers:
[1] Note rendition download time is not included here since the response from O to segment submission includes the URLs for the renditions which are downloaded separately.
If there are networking/bandwidth issues with O causing slow uploads, B could end up waiting the full HTTP timeout (defaults to 4x the segment duration) before it fails over to a different O. There is an opportunity to detect the networking/bandwidth issue with O earlier if B defined more granular timeouts in addition to the HTTP timeout for segment submission.
Describe the solution you'd like
A clear and concise description of what you want to happen.
B can define an upload timeout which is strictly shorter than the segment submission HTTP timeout. The upload starts when B submits a request to /segment and ends when B receives a response status from O [2]. If this upload exceeds the defined timeout, then B can fail over to a different O instead of waiting the full segment submission HTTP timeout. The upload timeout might be defined as
segment duration * uploadTimeoutMultiplier
whereuploadTimeoutMultiplier
could default to something like 0.5 such that a 2 second segment has a 1 second upload timeout.Code sketch
[2] The transcoding protocol has O send back a response status to acknowledge that the upload completed before it starts sending back data in the response body which only begins when it completes transcoding.
The text was updated successfully, but these errors were encountered: