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

partial read behavior on initial failure could be optimized #781

Open domsj opened 7 years ago

domsj commented 7 years ago

When the data fragment from which the proxy tries to read a bit of data is unavailable (most likely because the asd is down) there will currently be a fallback to fetch the entire chunk so it can rebuild the missing data fragment (followed by a repair-on-read of the missing fragment).

While functionally correct the proxy could (in case of no compression) instead fetch the right k slices from other available fragments, and erasure decode those to get at the desired piece of data.

This is a lot more lightweight (e.g. fetching k*4KB vs k*4MB), but has a downside that the unavailable data fragment will not be immediately repaired. It should result in a smoother transition (less hiccups) in case an asd (temporarily) goes haywire.