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

[leo_storage][read_repair] may not satisfy the read consistency #589

Closed
mocchira opened this issue Jan 25, 2017 · 6 comments
Closed

[leo_storage][read_repair] may not satisfy the read consistency #589

mocchira opened this issue Jan 25, 2017 · 6 comments

Comments

@mocchira
Copy link
Member

mocchira commented Jan 25, 2017

Problem

The read consisntency(R) may not be satisfied when flowing the exec path through https://github.com/leo-project/leo_storage/blob/1.3.1/src/leo_storage_read_repairer.erl#L89-L90 in case R >= 2 && failed to retrieve the data on erlang:node() for some reason because leo_storage_read_repairer:repair do not check the metadata if a redundancy node is erlang:node().

How to reproduce (The behavior to be is different from the below.)

The most easiest way to reproduce this issue is

  • get cluster up with N=2, R=2 and set is_strict_check to true in leo_storage.conf
  • put an object
  • break the primary object somehow (ex. edit an avs manually and restart a storage node
  • get the object
    • expected: 500
    • actual: 200

Solution

Take another look at leo_storage_read_repairer:repair.

[Edit]

  • Remove strikethroughed sentences to makes it concise.
  • Makes sentences that stated what the problem is more explicit
@yosukehara
Copy link
Member

@mocchira We need to implement this situation in a LeoFS' CI test. We're going to consider that soon. Thanks.

@mocchira
Copy link
Member Author

@yosukehara updated while leaving(Strikethroughed) the previous wrong comment for the record.
as stated the above, the problem is that leo_storage_read_repairer:repair regard the operation on node() as success regardless of the result of the actual operation.

mocchira added a commit that referenced this issue Jan 25, 2017
@mocchira
Copy link
Member Author

works as expected with 88d41ae .
however we also have to fix #543 since metadata is valid but avs is broken in this case.

@yosukehara
Copy link
Member

@mocchira I've reviewed 88d41ae , and there is no issue. Thanks.

@yosukehara
Copy link
Member

@yosukehara
Copy link
Member

We've checked the read-quorum implementation of v1.3.2:

After benchmarking that, we've recognized there is no issue.

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

2 participants