-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improved buffering #477
Improved buffering #477
Conversation
@@ -249,6 +251,101 @@ test.describe('Realtime telemetry displays', () => { | |||
} | |||
}); | |||
|
|||
test.only('Open MCT does not drop telemetry when a burst of telemetry arrives', async ({ page }) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
test('Does not drop telemetry when a burst of telemetry greater than the sharedbuffer arrives')
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good call, will do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks fine overall, however, the staleness and remote clock changes should be moved out into separate PRs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wasn't able to test staleness successfully, but we can do this once it's deployed to banner or shehulk. Looks good to me.
Test was failing due to genuine bug introduced in this refactor of telemetry batching. Previously housekeeping WebSocket messages bypassed the throttling / batching process altogether, which meant that important housekeeping messages (such as those that go back and forth when setting up a telemetry subscription) were never dropped. With this refactor the WebSocket buffering code was greatly simplified, removing the special handling for housekeeping messages. One of the automated tests triggered an edge case where throttling is induced during the initial handshaking that takes place when initializing a subscription, causing some subscriptions to never get established properly. Luckily our tests caught this. I made a small change to the telemetry throttling implementation so that instead of throttling all messages when the UI thread is overloaded, a regex can optionally be supplied that is used to decided whether a given message should be throttled. This allows us to avoid culling housekeeping messages. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good
NOTE: nasa/openmct#7837 will need be merged before this.
latest
Adapts the openmct-yamcs plugin for the API changes in nasa/openmct#7838
Describe your changes:
All Submissions:
Author Checklist
type:
label? Note: this is not necessarily the same as the original issue.Reviewer Checklist