Project

General

Profile

Feature #9059

Updated by Sage Weil over 9 years ago

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.).

Back