osd: EC Partial Stripe Reads (Retry of #23138 and #52746)
This commit is a further ressurection of the EC partial reads
concept; this time of the Mark Nelson's work sent as PR #52746.
The modifications in this commit are mostly about settling
Mark's work on top of the recent rework of `ECBackend` which
had shared the EC codebase with the crimson-osd.
At the original description says, Mark's work is based on earlier
attempt from Xiaofei Cui.
Therefore credits go to:
* Mark Nelson (Clyso),
* Xiaofei Cui (cuixiaofei@sangfor.com.cn).
The original commit description is preserved below:
> This is a re-implementation of PR #23138 rebased on main with a couple of nitpicky changes to make the code a little more clear (to me at least). Credit goes to Xiaofei Cui [cuixiaofei@sangfor.com.cn](mailto:cuixiaofei@sangfor.com.cn) for the original implementation.
>
> Looking at the original PR's review, it does not appear that we can use the same technique as in
468ad4b. We don't have the ReadOp yet. I'm not sure if @gregsforytwo's idea to query the plugin works, but it's clear we are not doing the efficient thing from the get-go here.
>
> The performance and efficiency benefits for small random reads appears to be quite substantial, especially for large stripe widths.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>