Use pipeToRouter to improve dialog scalability. A global workerLoadMan module maintains stats for all the active rooms, iterating through their peers and workers. workerLoadMan is used to run this survey of rooms periodically. The stats from the survey are then used to get the least-used worker when new rooms are created, and when new connections are made to a room.
More detailed changes:
Adds _getRouterId and _pipeProducersToRouter to Room.js, which are used when new connections are made.
Adds /meta and /report endpoints to the admin express app, for CCU and detailed stats reporting.
Use
pipeToRouter
to improve dialog scalability. A globalworkerLoadMan
module maintains stats for all the active rooms, iterating through their peers and workers.workerLoadMan
is used to run this survey of rooms periodically. The stats from the survey are then used to get the least-used worker when new rooms are created, and when new connections are made to a room.More detailed changes:
_getRouterId
and_pipeProducersToRouter
to Room.js, which are used when new connections are made.PRD: https://mana.mozilla.org/wiki/display/Hubs/PRD%3A+dialog+scalability TDD: https://mana.mozilla.org/wiki/display/Hubs/TDD%3A+dialog+scalability (this is the last piece)