Skip to content
This repository has been archived by the owner on Apr 4, 2022. It is now read-only.

Concurrency problems with state update can lead to membership data loss #18

Open
cmeiklejohn opened this issue Jul 30, 2015 · 2 comments

Comments

@cmeiklejohn
Copy link
Contributor

The attempt_join process uses the externally exported update_state function to write the state back to the ETS table; however, a race condition can occur where the state in the ETS table has changed which will be overwritten when persisted back to the ETS table.

What really needs to happen is that attempt_join needs to submit it's own changes; the metadata manager needs to act in serial and compute the merge, or join, itself before binding the state change. This is the only safe way to compute this join and is how Lasp deals with concurrent edits to the same CRDT at a single replica.

@cmeiklejohn cmeiklejohn changed the title Concurrency problems with attempt_join can lead to membership data loss Concurrency problems with state update can lead to membership data loss Jul 30, 2015
@cmeiklejohn
Copy link
Contributor Author

I've got a patched version of this in the Lasp fork of Plumtree.

@cmeiklejohn
Copy link
Contributor Author

Addressed by #23.

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

No branches or pull requests

1 participant