Skip to content

squid: osd/scrub: discard repair_oinfo_oid()#61935

Merged
ronen-fr merged 1 commit intoceph:squidfrom
ronen-fr:wip-rf-61590-squid
Feb 28, 2025
Merged

squid: osd/scrub: discard repair_oinfo_oid()#61935
ronen-fr merged 1 commit intoceph:squidfrom
ronen-fr:wip-rf-61590-squid

Conversation

@ronen-fr
Copy link
Contributor

This is a backport of a Tentacle change that improves Scrub performance.
As the code change is isolated and minimal, it can be considered for Squid.

repair_oinfo_oid(), called every scrub, has a very specific functionality: fix the object ID specified in the Object Info attribute, if different from the ID of the owning object.

This fix was added in 2017, as a response to a unique failure scenario that was observed in Sepia - probably following a filesystem bug. See https://tracker.ceph.com/issues/18409 & https://tracker.ceph.com/issues/20471.

The limited functionality of repair_oinfo_oid() -
only repairing this one specific issue, and only if the OI_ATTR exists and is decodable - does not justify the overhead of running it every scrub.

Signed-off-by: Ronen Friedman rfriedma@redhat.com
(cherry picked from commit 7853731)

repair_oinfo_oid(), called every scrub, has a very specific
functionality: fix the object ID specified in the Object Info
attribute, if different from the ID of the owning object.

This fix was added in 2017, as a response to a unique failure
scenario that was observed in Sepia - probably following a
filesystem bug. See https://tracker.ceph.com/issues/18409 &
https://tracker.ceph.com/issues/20471.

The limited functionality of repair_oinfo_oid() -
only repairing this one specific issue, and only if the OI_ATTR
exists and is decodable - does not justify the overhead of
running it every scrub.

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
(cherry picked from commit 7853731)
}
object_info_t oi;
try {
oi.decode(o.attrs[OI_ATTR]);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For every scrubbed object... I think I see the rationale.

@ronen-fr
Copy link
Contributor Author

@ronen-fr ronen-fr merged commit e98060b into ceph:squid Feb 28, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants