openvstorage / alba

Open vStorage ALBA (alternate backend) creates a replicated or flexible network raid’ed object storage backend out of Seagate Kinetic drives and local disk supporting compression, encryption.
Other
28 stars 10 forks source link

Repair on read for the full object read path #208

Open domsj opened 8 years ago

domsj commented 8 years ago

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

hofkensj commented 8 years ago

@wimpers do we have an ETA on this one. We need it for the Sberbank tests.

wimpers commented 8 years ago

@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.

hofkensj commented 8 years ago

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.

domsj commented 8 years ago

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?