os/bluestore, rgw: Get rid of superfluous iterator seeking#60056
os/bluestore, rgw: Get rid of superfluous iterator seeking#60056
Conversation
In PrimaryLogPG::do_osd_ops operation CEPH_OSD_OP_OMAPGETVALS used to do both upper_bound and lower_bound in some cases. Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
Remove lower_bound that is applied when iterator is created. Added assertions in case someone would create iterator but not initialize position before using it. Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
|
Do we actually need seeked? Looks like most of those check it->valid() -- would that suffice? |
@athanatos So maybe entire PR should be without seeked? |
|
Testing results of this PR done using #60315. Run using command: Left column images are without the PR, right with new iterator modification (with the PR). In reference code iterator creation (blue line) dominates execution time. |
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
|
Closing as the far broader #60278 has been merged. |




Eliminates inefficiencies in using of omap iterators.
Added assert guard rails if iterator obtained by ObjectStore::get_omap_iterator is used without initial seek_to_first/upper_bound/lower_bound.
This PR is related to #60000
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