You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The discovery-client is built right now to handle around 10 (order of magnitude) robots reliably. If, however, the app is operating in an environment where it sees and then caches many (order of magnitude 100) robots, the poll intervals / cache writes start to affect performance, sometimes to the point of robots never showing up
current behavior
App has two polling intervals
The interval represents the gap between polls of a given IP
Fast for when the list is refreshing (3000 ms)
Slow for idle operation (15000 ms)
The interval is divided by number of robots, and a GET /health request is fired for that interval
e.g. if interval is 3000 ms, and there are 10 robots, the poller will make a request every 300 ms, each time to a different robot until it loops back around
If the robot list gets big, then our setInterval gets called with increasingly tiny numbers
Robot entries are never evicted from the app's cache
Discovery Client fires an event per individual robot update, and app writes the entire cache file on every update event
ideas
Establish a minimum actual polling interval at something sane (e.g. 100ms)
Closing because optimizations added in #2404 / #2420 effectively mitigate lag and feature ticket #2435 tracks the desired solution to the underlying problem
overview
The discovery-client is built right now to handle around 10 (order of magnitude) robots reliably. If, however, the app is operating in an environment where it sees and then caches many (order of magnitude 100) robots, the poll intervals / cache writes start to affect performance, sometimes to the point of robots never showing up
current behavior
setInterval
gets called with increasingly tiny numbersideas
Establish a minimum actual polling interval at something sane (e.g. 100ms)Throttle the cache update handler in the appThe text was updated successfully, but these errors were encountered: