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
Implementation of epic #7615 <- see here for full details
Approach
The required work for this item is to break the graph visitation into two passes. The first pass visits the IChannels, instructing the channel to capture whatever state it will need in order to summarize itself. Because attachment occurs on the user's client (vs. the designated summarization client), this pass must remain synchronous to avoid local mutations while the snapshot is being captured.
The second pass revisits the same graph of IChannels, requesting that they produce an ISummaryTree from their previously captured state. This second pass is asynchronous, which allows allows the DDS implementer to upload or download blobs, and/or periodically yield.
What the DDS captures during the first pass is up to the DDS. DDSes using functional/persistent/immutable data structures may perform a cheap clone during this phase, while other DDSes may continue to synchronously produce an ITree in the first pass and simply return it in the second pass.
The text was updated successfully, but these errors were encountered:
Work Item
Implementation of epic #7615 <- see here for full details
Approach
The required work for this item is to break the graph visitation into two passes. The first pass visits the IChannels, instructing the channel to capture whatever state it will need in order to summarize itself. Because attachment occurs on the user's client (vs. the designated summarization client), this pass must remain synchronous to avoid local mutations while the snapshot is being captured.
The second pass revisits the same graph of IChannels, requesting that they produce an ISummaryTree from their previously captured state. This second pass is asynchronous, which allows allows the DDS implementer to upload or download blobs, and/or periodically yield.
What the DDS captures during the first pass is up to the DDS. DDSes using functional/persistent/immutable data structures may perform a cheap clone during this phase, while other DDSes may continue to synchronously produce an ITree in the first pass and simply return it in the second pass.
The text was updated successfully, but these errors were encountered: