osd: bypass messenger for local EC reads#57237
Conversation
|
@rzarzynski Oooh, this is a clever one. I'll try to review later unless @bill-scales gets to it first. |
bill-scales
left a comment
There was a problem hiding this comment.
Changes look good, although I don't have authority to sign off the review yet.
The important part of the change is submitting the messages to read other OSDs first, then issuing the local synchronous read (which will block) so all the reads still happen in parallel. The write path already has this optimization for the local write and write reply so no further work is required there.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
7a16b48 to
f72be2c
Compare
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
This pull request has been automatically closed because there has been no activity for 90 days. Please feel free to reopen this pull request (or open a new one) if the proposed change is still appropriate. Thank you for your contribution! |
In order to fulfill a read request, an OSD needs to fetch chunks from remote shards as well as from its local
ObjectStore. Currently, there is no distinction in handling between these sources – even local reads are served through the messenger, using its loopback connection. However, this requires some extra work to be spent on handling buffers, workqueues and executing requests. This commit implements the messenger bypass for reading from local store.CC: @markhpc, @bill-scales.
(this commit has been dissected from a bigger WIP branch for crimson)
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windowsjenkins test rook e2e