Feature #14860
closedscrub/repair: persist scrub results (do not overwrite deep scrub results with non-deep scrub)
0%
Description
this is a spin-off of #13505
note to myself, in the last discussion with david, he advised that we should not overwrite the scrub result of deep scrub with the shallow one. considering an OSD with low workload, the shallow scrub is performed once a day, while the deep scrub is performed once a week. so on the week end the deep scrub result overwrites the shallow scrub result. hence some of the discrepancies are overlooked.
- data_digest_mismatch
- omap_digest_mismatch
- read_error
if the content of the object/omap in question is rewritten after the deep scrub and before we do the repair, the error is very likely persists.
to implement this feature, we can have two omap entries for each object. one for shallow errors, the other for deep errors. and the deep scrub can rewrite both of them, while the shallow scrub can only overwrite the former one.
as this design considerably complicates the code. i want to keep the current behaviour around until we have a better idea how to solve it.