SFU Server Dynamic Stream Allocation for Scalability
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If multiple SFUs are deployed to improve scalability, then scalability improves, but device complexity increases
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.
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.
3Productivity
If streams are concentrated in fewer SFUs, then resource utilization efficiency improves, but overloading risk increases
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.
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.
4Reliability
If streams are distributed across more SFUs, then overloading is prevented, but resource utilization efficiency decreases
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.
Data Source
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.

