SFU Server Dynamic Stream Allocation for Scalability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current media conferencing platforms using WebRTC and SFU architectures face scalability issues due to the limitations of single SFU capacity and lack of dynamic allocation of participants to SFUs, leading to potential overloading and inefficient resource utilization.

Innovation Solution

Implementing a method where a server dynamically allocates streams across multiple interconnected SFUs, using a load balancer to distribute data streams based on available capacity and geolocation, ensuring efficient resource utilization and preventing overloading by chaining SFUs and using a messaging server to manage stream allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single SFU is used to handle media streams, then device complexity is reduced, but scalability deteriorates as the number of participants increases

Engineering Contradiction:
ImproveSFU architecture complexityVSAvoidscalability
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system segments the SFU functionality across multiple routing devices. Instead of using one SFU to handle all participants, the system divides the load across multiple SFUs, each handling a subset of participants. This is achieved through the server dynamically allocating streams to different SFUs based on capacity and geolocation, resolving the contradiction by maintaining architectural simplicity while achieving scalability through distributed segmentation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from a single-dimension architecture (one SFU handling all streams) to a multi-dimensional architecture where streams are distributed across multiple SFUs based on additional dimensions such as geolocation and available capacity. This dimensional expansion allows the system to scale horizontally while maintaining manageable complexity at each node.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If multiple SFUs are deployed to improve scalability, then scalability improves, but device complexity increases

Engineering Contradiction:
ImprovescalabilityVSAvoidSFU architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The server acts as an intermediary that manages the complexity of coordinating multiple SFUs. It handles stream allocation, capacity monitoring, and geolocation-based routing, abstracting away the complexity from individual SFUs. This mediator approach allows multiple SFUs to work together seamlessly without each one needing to be aware of the others, maintaining simplicity at the edge while achieving scalability through centralized coordination.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically changes parameters such as stream allocation, SFU capacity thresholds, and geolocation-based routing criteria to optimize the distribution of loads across multiple SFUs. By adjusting these parameters based on real-time conditions, the system can scale across multiple devices while maintaining efficient resource utilization and manageable complexity through adaptive parameter tuning.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If streams are concentrated in fewer SFUs, then resource utilization efficiency improves, but overloading risk increases

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidoverloading prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements dynamic stream allocation where the server continuously monitors SFU capacity and adjusts stream distribution in real-time. This dynamic approach allows streams to be concentrated in SFUs with available capacity to maintain high resource utilization efficiency, while simultaneously preventing overloading by redirecting new streams to SFUs with sufficient capacity. The dynamic nature of the allocation ensures both efficiency and reliability are maintained under varying load conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs feedback mechanisms where the server monitors the capacity and performance of each SFU and uses this information to make informed allocation decisions. This feedback loop ensures that streams are directed to SFUs that can handle them efficiently, preventing overloading while maximizing resource utilization. The feedback-driven approach allows the system to adapt to changing conditions and maintain reliability without sacrificing efficiency.

Inventive Principle:
Principle #23Feedback

4Reliability

If streams are distributed across more SFUs, then overloading is prevented, but resource utilization efficiency decreases

Engineering Contradiction:
Improveoverloading preventionVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically changes allocation parameters based on real-time SFU capacity and load conditions. When SFUs have available capacity, the server concentrates streams to improve resource utilization efficiency. When capacity thresholds are approached, the server adjusts parameters to distribute streams across additional SFUs, preventing overloading. This parameter-driven approach ensures the system optimizes for efficiency when possible while maintaining reliability through dynamic redistribution when needed.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10757155B2Method and server for real-time data streaming in a media session
Publication Date: 2020.08.25 VONAGE BUSINESS INC
  • US10757155B2 patent drawing
  • US10757155B2 patent drawing

AI summary

The method comprising performing by a server following steps: receiving a stream of data from a first client of a media session; requesting to a load balancer which routing device the server has to use to forward the received stream to a plurality of other clients of the media session; setting a first parameter of the first routing device to a first value, and a second parameter to a second value; receiving a request to receive said received stream from a second client of the media session; and checking whether the first routing device is valid, wherein the server forwarding the received stream to the second client through the first routing device if the first routing device being valid and also decreasing the first parameter by one, or the server requesting a second routing device to be used to the load balancer and further performing the setting of the first and second parameters for the second routing device.