Actions
Feature #9059
closedosd: store opportunistic whole-object checksum
% Done:
0%
Source:
Development
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:
Description
when we deep scrub, we have a whole-object checksums that cover data and omap. store a copy in object_info_t, along with the object version. later, if there is bitrot, and the object hasn't been modified, we will know it is this copy that went bad.
if we create an object, we can also set this checksum, taking care to use the same checksumming strategy that deep scrub does.
if we read an entire object, we can verify the checksum on read.
if we do a partial-object mutation, the object version changes, and the checksum info is implicitly invalidated. we could be varying degreses of clever here about whether the mutation affected the checksum (did we overwrite all bytes, and no omap keys are present? etc.).
Actions