Skip to content

Conversation

@piersoh
Copy link
Contributor

@piersoh piersoh commented Aug 13, 2024

This update changes the cached Response detection algorithm in the ThroughputModel so that it adjusts the cacheLoadThresholds according to the ratio of the bandwidth of the representation that has been downloaded to the top representation, as opposed to just using one threshold for all reps which can lead to incorrect cached response detection. This is on the assumption that the cacheLoadThresholds represent the time for a top representation bandwidth segment to be delivered.

  • Added new bandwidth_ratio metric which is a ratio of the current representation's bandwidth to the top representation
  • This bandwidth_ratio is used to adjust the timeout used in the cache detection algorithm so it doesn't incorrectly trigger for lower representations.

piersoh and others added 2 commits August 9, 2024 16:59
- Added new bandwidth_ratio metric which is a ratio of the current
  representation's bandwidth to the top representation
- This bandwidth_ratio is used to adjust the timeout used in the cache
  detection algorithm so it doesn't incorrectly trigger for lower
  representations.
- This is on the assumption that the cacheLoadThresholds represent
  the time for a top representation bandwidth segment to be delivered
@dsilhavy dsilhavy added this to the 5.0.0 milestone Aug 13, 2024
@dsilhavy
Copy link
Collaborator

Thanks @piersoh for the PR. Two immediate comments:

  • Can you please fix the unit tests it looks like some of them are failing
  • We use camel case throughput the project, please rename to _bandwidthRatio

@dsilhavy
Copy link
Collaborator

I merged development into this PR you will need to pull before commiting again. Thanks !

@dsilhavy
Copy link
Collaborator

Thanks for the changes @piersoh . I did some tests with our default Big Buck Bunny content (https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd). In my tests the changes lead to problems with the cache detection as the increase of the cacheReferenceTime seems to be too high:

Bildschirmfoto 2024-08-14 um 08 44 39 Bildschirmfoto 2024-08-14 um 08 44 21

In the example above, the video segments are all served from the cache. However, the new cacheReferenceTime is much higher than our default threshold of 50ms because of the_bandwidthRatio.

How did you verify these changes?

@dsilhavy dsilhavy modified the milestones: 5.0.0, 5.1.0 Nov 4, 2024
@dsilhavy dsilhavy moved this to Selected for Development in dash.js Version 5.1.0 Jun 12, 2025
@dsilhavy dsilhavy modified the milestones: 5.1.0, 5.2.0 Oct 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants