Skip to content
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

DDS Async Summarization (October) #7953

Closed
Tracked by #7615
scarlettjlee opened this issue Oct 22, 2021 · 0 comments
Closed
Tracked by #7615

DDS Async Summarization (October) #7953

scarlettjlee opened this issue Oct 22, 2021 · 0 comments
Assignees
Milestone

Comments

@scarlettjlee
Copy link
Contributor

scarlettjlee commented Oct 22, 2021

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.

@scarlettjlee scarlettjlee added this to the October 2021 milestone Oct 22, 2021
@scarlettjlee scarlettjlee self-assigned this Oct 22, 2021
@scarlettjlee scarlettjlee changed the title Async Summarization (October) DDS Async Summarization (October) Oct 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant