Open domsj opened 8 years ago
@wimpers do we have an ETA on this one. We need it for the Sberbank tests.
@hofkensj, @domsj is currently working on it. Expected ETA before end of next week (exact date will depend on the bugs popping up from the RORA tests). Basically the team is trying to release it asap.
I assume this will be in Fargo right .. not unstable.
On 16 Sep 2016, at 10:34, Wim Provoost notifications@github.com wrote:
@hofkensj https://github.com/hofkensj, @domsj https://github.com/domsj is currently working on it. Expected ETA before end of next week (exact date will depend on the bugs popping up from the RORA tests). Basically the team is trying to release it asap.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/openvstorage/alba/issues/208#issuecomment-247547491, or mute the thread https://github.com/notifications/unsubscribe-auth/AP1_qAf5EghNW8MrgNW_swOafMBHfCfTks5qqlSrgaJpZM4InVcT.
Repair on read has been implemented for the partial read path, where the need was the most pressing. This can also be done for the full object read path, but that could use some other optimisation too (now it always tries to fetch all fragments which isn't really needed). So should we lower the priority of this ticket, or close it and create another one about optimising the (full) object read path?
When a (partial) object read can't get a copy of a certain fragment* we have to regenerate it from the other fragments of the chunk. This incurs a (big) cost (extra IO to fetch the other fragments and some cpu), which will have to be paid each time until the fragment gets repaired by the maintenance process. Ok, reality is better than this: if the proxy is configured with a fragment cache the price only has to be paid when the fragment can not be found in the cache. Do note that all flash alba's will (usually) be configured to not use a fragment cache (so that they can do partial reads from the asds), so there this situation is costly.
We can improve this behaviour (only pay the price once) by doing a repair on read - that is store the fragment on an available osd while we have it in memory anyway.
*: This could be due to several reasons: e.g. 1) the fragment current just doesn't exist (location None for it in the manifest) or 2) it somehow got corrupted or 3) the osd doesn't have the fragment (due to some bug?) or 4) the osd is unreachable