Architectures for Multi-CDN Switching

Project Status:

(roll over for info)

Working

The project is actively being worked on.

Start:

December 1, 2022

Estimated Completion:

January 31, 2024
  • Home
  • Architectures for Multi-CDN Switching

Problem Statement

Issues with CDNs can impact QoE at the player if a specific CDN is performing poorly but still being used to fulfill the requests. The delivery system needs to include business logic and heuristics to be able to switch between CDNs, for whatever reason, and have the requests appropriately modified to reflect the new CDN URL.

Project Description

Multi-CDN delivery has become commonplace in scalable streaming video architectures, but switching to a different CDN in real time to improve QoE is not easy. Many server-side and client-side solutions are available to streaming operators, but there is little consensus on the best way to accomplish it. This project studies several existing and proposed solutions to this problem to understand their merits and scenarios when each can be recommended. The Load Balancer is a client-side solution proposed in this project. It is a TypeScript library that serves as a client-side multi-CDN switcher for video streaming. For each video segment requested by the player, the Load Balancer determines the best CDN to use and outputs a modified HTTP request identifying that determined CDN. The Load Balancer determines the best CDN by maximizing business rules and QoS scores, with initial values provided by an external interface. Once playback begins, an internal algorithm in the Load Balancer updates the QoS scores with each content delivery network request. The Load Balancer repository also comes with a demo page. The demo page shows lightweight JavaScript integration of the Load Balancer with the open-source Shaka player. Content steering is a combined client-side and server-side architecture relying on Content steering functions of the HLS and DASH standards. There have been two proposed implementations of such solutions to the project. One includes manifest updates and content steering functions are implemented by a centralized server. The other proposed implementation – Content Steering at Edge – provides an implementation of manifest updaters and steering servers deployable as stateless functions by edge platforms. Example implementations of both conventional server-based and edge-based systems are submitted as SVTA Labs repositories to the project. Both come with deployment scripts and demos. Both operate with dash.js, hls.js and video.js streaming clients. While studying these solutions, the project seeks inputs on additional and alternative architectures for CDN switching, as well as contributions towards defining a mechanism for coexistence and regulation of usage of different solutions.

Project Type

Code

Project Leads

Advisors

Goals and Objectives

The objectives and goals of this project are:
  • Identify the different methods of CDN switching
  • Study the impact of client-side and server-side CDN switching on the client’s rate-adaptation algorithm
  • Identify pros and cons of client-side vs. server-side methods
  • Identify opportunities for harmonizing the client-side solution with the server-side ones (such as server-guided steering)
  • Develop open-source implementations of both client-side and server-side solutions, including means of ensuring compatibility and enabling their joint usage.

Project Scope

This project WILL:
  • Outline different methods for CDN switching and explore the pros and cons of each
  • Propose client-side and server-side approaches to CDN switching supported by open-source implementations of such solutions
  • Develop means enabling interoperability and joint use of client-side and server-side CDN switching solutions
This project WILL NOT:
  • Claim that this approach is the best or only method for CDN switching
  • Recommend one player versus another beyond using a specific player to test the proposed solution

Contributors

The following members have contributed to this project. Click on their name to visit their profile. If they have not published their profile, the link will redirect to their LinkedIn profile.

Presentations

The following presentations delivered during Players and Playback working group sessions may provide additional information about this project.