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

scorch rollback semantics #760

Open
mschoch opened this issue Feb 8, 2018 · 0 comments
Open

scorch rollback semantics #760

mschoch opened this issue Feb 8, 2018 · 0 comments

Comments

@mschoch
Copy link
Member

mschoch commented Feb 8, 2018

We have identified some issues with scorch rollback. Some conversation in #754

I'm not sure I have it yet, but I think I have identified one issue. The introduction of segments and the introduction of rollbacks both come in through the introducer. If you remember, prior to the introduction of segments, some optimistic work is done. Then during introduction we check that optimistic work and possibly do some fixup. But, I think if a rollback is applied, the fixup phase for the optimistic work isn't enough (ie, the optimistic work is wrong, not just incomplete). A similar problem may face the merger (though I haven't thought about it yet).

It almost seems like if we decide to rollback, it should flush the pipeline of not yet applied things (returning error in the case of batches, and just dropping the merges).

And additional thoughts from Steve that Rollback shouldn't honor unsafe_batch flag, and instead always do the right thing.

Additional discussion opened up possibility that Rollback could behave like Close(). So, it would first shut down all background goroutines, be in some highly deterministic state, then reset the state so that upon the next open, it's in the newly desired state, then shut down. This is just an idea at this point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant