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

Maintain blacklisted fogs during writes to ensure same fogs are not requested in case of write failures #14

Open
skmonga opened this issue Mar 5, 2019 · 2 comments
Assignees
Labels
high high priority moderate easy effort to fix
Milestone

Comments

@skmonga
Copy link
Contributor

skmonga commented Mar 5, 2019

It might happen that replica identification returns a set of fogs but some of the fogs are not able to serve the write request due to several reasons (edge failures, edge storage below the disk watermark, etc). In such a case, during the retry phase, the api for replica identification must support a list of blacklisted fogs which will not be picked for writing again and will only search through the rest of the fogs.

@skmonga skmonga added the moderate easy effort to fix label Mar 5, 2019
@skmonga skmonga added this to the v0.2 milestone Mar 5, 2019
@simmhan
Copy link
Contributor

simmhan commented Mar 5, 2019

The client will, for that API call session, maintain fogs that do not have adequate edge count capacity at a given quadrant. If a fog that it contacts does not have edges at that quad, the fog will return an alternative fog which it thinks has capacity. The client will pass the blacklist as part of this exchange so that the alternative fog is not part of this.

@skmonga
Copy link
Contributor Author

skmonga commented Mar 20, 2019

The client will initially get the list of fogs which will take part in writing of a data block. Initially the client will not be aware of any fogs which doesn't have adequate edge count capacity as we are doing it on an api call session basis. While performing the write operation, it might fail and client on an error response can populate the list of blacklisted fogs and the fog it communicated with can return an alternative fog. The client can then communicate with the alternative fog passing the blacklisted fogs as a parameter. However, the writes by the client are parallel and the blacklisted fogs list is building up as the writes are performed, so need to take care of parallelism in the write operation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
high high priority moderate easy effort to fix
Projects
None yet
Development

No branches or pull requests

3 participants