-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Labels
Description
Prerequisites
- I have written a descriptive issue title
- I have verified that I am running the latest version of the COMET-SDK
- I have searched open and closed issues to ensure it has not already been reported
Description
The flow for data updates in IME/SDK is as follows:
- (IME) Timer elapses in IME, Session.Refresh() is called
- (SDK) Refresh loops through all toplevel containers (SiteDirectory and all open Iterations) to do a Refresh on a specific topcontainer
- (SDK) Per TopContainer after data is retrieved from the server, a SessionEvent is sent to the messagebus that involves a SessionStatus.BeginUpdate
- (IME) SessionStatus.BeginUpdate subscription on MessageBus results in a BeginDataUpdate command (GridUpdateService.cs) per open Browser that represents a piece of data from the Session that is refreshed
- SDK Assembler sends MessageBus ObjectChangedEvents per changed Thing (for revisions that are already in the cache the system DOES NOT send an ObjectChangedEvent).
- (IME) Data updates are handled per subscription
- (SDK) Per TopContainer after data is processed in the Assembler, a SessionEvent is sent to the messagebus that involves a SessionStatus.EndUpdate
- (IME) SessionStatus.EndUpdate subscription on MessageBus results in an EndDataUpdate command (GridUpdateService.cs) per open Browser that represents a piece of data from the Session that is refreshed. This action refreshes the browser's UI and uses a lot of memory and CPU if browser contain a lot of data.
Possible Performance gain: Only send SessionStatus.BeginUpdate and SessionStatus.EndUpdate when necessary (=data has actually been changed).
So only when the first ObjectChangedEvent was sent to the MessageBus. Only once per Session refresh (session refresh = SiteDirectory + nr_of_Open_Iterations).
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Sprint Backlog