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

Provide access to sequence after partial load #89

Closed
kurtb opened this issue Aug 19, 2019 · 0 comments · Fixed by #2689
Closed

Provide access to sequence after partial load #89

kurtb opened this issue Aug 19, 2019 · 0 comments · Fixed by #2689
Assignees
Labels
api area: dds Issues related to distributed data structures perf
Milestone

Comments

@kurtb
Copy link
Contributor

kurtb commented Aug 19, 2019

Previously the sequence would become active after only loading the header.

But a recent change waited on body load prior to giving access https://github.com/microsoft/Prague/blob/12c12a3bea16181fd478ea22dd8f04a01b327338/packages/runtime/sequence/src/sequence.ts#L612.

For documents that can't delay load this is not problematic. But for those that can, like flow-view, it's a big perf hit (seconds).

This was simpler when prepare existed because the runtime would await the sequence being fully loaded before inbounding new ops (it would still allow outbound). In the updated world the sequence will need to be able to handle ops for segments it has not yet loaded.

@anthony-murphy anthony-murphy transferred this issue from another repository Sep 19, 2019
@vladsud vladsud removed their assignment Jan 31, 2020
@curtisman curtisman added the area: dds Issues related to distributed data structures label Jan 31, 2020
@curtisman curtisman added this to the Future milestone Feb 2, 2020
@curtisman curtisman modified the milestones: Future, Next 2020 May 30, 2020
@anthony-murphy anthony-murphy modified the milestones: Next 2020, June 2020 Jun 1, 2020
anthony-murphy added a commit that referenced this issue Jun 29, 2020
This change enabled partial load of sequences when the configuration option sequenceInitializeFromHeaderOnly is set to true.

When this is set to true, we load the header, and then return from the load core call after the header is loaded. While the body is loading we cache all incoming an outgoing ops. Once the body is loaded we apply the incoming ops, and then resubmit the outgoing ops.

Fixes #89
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api area: dds Issues related to distributed data structures perf
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants