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

put is only eventually consistent? #13

Open
benoitc opened this issue Aug 23, 2017 · 6 comments
Open

put is only eventually consistent? #13

benoitc opened this issue Aug 23, 2017 · 6 comments
Labels

Comments

@benoitc
Copy link

benoitc commented Aug 23, 2017

when i read the source code of plumetrre_manager it looks that during 2 simultaneous put one can win over the second. i know that this rarely happen but is this the expected behaviour?

@dergraf
Copy link

dergraf commented Aug 23, 2017

AFAIK simultaneous PUTs will result in siblings, which you resolve during GET. The default way for resolving is using last-writer-wins (LWW).

Are you using this fork of Plumtree?

@benoitc
Copy link
Author

benoitc commented Aug 23, 2017

not sure you're right. since you read then save in the db there is still a chance to put the metadata from 2 simultaneous put on different data:

https://github.com/erlio/plumtree/blob/master/src/plumtree_metadata_manager.erl#L461

@benoitc
Copy link
Author

benoitc commented Aug 23, 2017

ie the metadata can miss some causality info.

@benoitc
Copy link
Author

benoitc commented Aug 23, 2017

also to answer to your question i was thinking to use it with rocksdb. i

i'm rereading the code but still not sure how the metadata can't be overwritten by the last doing a put. (simultaneous reads of the metadata but a different put)

@ioolkos
Copy link

ioolkos commented Aug 23, 2017

Well, OK, let's test it then. I guess this is approachable by Concuerror with a test spawning 2 processes that concurrently PUT?

@benoitc
Copy link
Author

benoitc commented Aug 23, 2017

@ioolkos never tried it using concuerror. maybe quickcheck also

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

No branches or pull requests

3 participants