936363b310
We currently use a simple producer round-robin algorithm to distribute elements between mediasoup workers. This works for most scenarios but fails in some edge cases, such as: - 1-to-N scenarios where N >= ~600-800 (sample number, varies by single-core performance). This is due to subscribers being pinned to a producer's worker. - Poor distribution results from round-robin. Enable the following new features in bbb-webrtc-sfu via after-install by default: - `mediasoup.workerBalancing.strategy: least-loaded`: Replaces round-robin with load scoring. Workers are selected based on which is least loaded. - `mediasoup.enableWorkerTransposing: true`: Allows media streams to be bridged between workers through internal RTP pipes. This, along with a per-worker stream limit, enables seamless offloading of streams between workers (whether publishers or subscribers). The per-worker stream limit is still under review. These changes should address the issues mentioned. They are enabled via after-install because the SFU version is shared with previous BBB versions where these features are not desirable yet. |
||
---|---|---|
.. | ||
bbb-apps-akka | ||
bbb-common | ||
bbb-config | ||
bbb-etherpad | ||
bbb-export-annotations | ||
bbb-freeswitch-core | ||
bbb-freeswitch-sounds | ||
bbb-fsesl-akka | ||
bbb-graphql-actions | ||
bbb-graphql-middleware | ||
bbb-graphql-server | ||
bbb-html5 | ||
bbb-html5-nodejs | ||
bbb-learning-dashboard | ||
bbb-libreoffice-docker | ||
bbb-livekit | ||
bbb-mkclean | ||
bbb-pads | ||
bbb-playback | ||
bbb-playback-notes | ||
bbb-playback-podcast | ||
bbb-playback-presentation | ||
bbb-playback-screenshare | ||
bbb-playback-video | ||
bbb-record-core | ||
bbb-transcription-controller | ||
bbb-web | ||
bbb-webhooks | ||
bbb-webrtc-recorder | ||
bbb-webrtc-sfu | ||
bigbluebutton |