You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Apr 4, 2022. It is now read-only.
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.
The text was updated successfully, but these errors were encountered:
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
The
attempt_join
process uses the externally exportedupdate_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.The text was updated successfully, but these errors were encountered: