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

Retry entire update (including find) excluding success docs when concurrent update detected #314

Open
alechenninger opened this issue Sep 27, 2016 · 2 comments

Comments

@alechenninger
Copy link
Contributor

alechenninger commented Sep 27, 2016

This would establish a true happens before relationship for concurrent update operations which are resequenced.

The effect is that for given requests A and B which interleave[1], the effects of the one that is successful are entirely visible to a retry of B. This means the operations are exactly equivalent to if A and B did not interleave, and one finished completely before the other.

[1] Where interleaved is defined as, when multiple update requests against an overlapping set of documents make finds before at least one among them has made its updates

@alechenninger alechenninger changed the title Query again excluding success docs when concurrent update detected Retry entire update (including find) excluding success docs when concurrent update detected Sep 27, 2016
@alechenninger
Copy link
Contributor Author

@bserdar What if we retried the query, excluding docs with the doc version? If they have the doc version, that means it was successful, and we don't need to work with the unbounded set of _ids.

Have to be careful the doc version hasn't expired yet, and may want to index doc version by default in that case?

@bserdar
Copy link
Contributor

bserdar commented Oct 3, 2016

It could be possible to implement this using an exclusion on docid. An index on docid won't be helpful for this case.

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

2 participants