Project

General

Profile

Feature #9059

osd: store opportunistic whole-object checksum

Added by Sage Weil over 8 years ago. Updated over 8 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
-
Target version:
% 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.).

History

#1 Updated by Sage Weil over 8 years ago

  • Target version deleted (0.85 cont.)

#2 Updated by Sage Weil over 8 years ago

  • Description updated (diff)
  • Source changed from other to Development

#3 Updated by Sage Weil over 8 years ago

  • Target version set to v.actually91

#4 Updated by Sage Weil over 8 years ago

  • Status changed from New to In Progress

#5 Updated by Sage Weil over 8 years ago

  • Status changed from In Progress to 7

#6 Updated by Sage Weil over 8 years ago

  • Target version changed from v.actually91 to v0.92

#7 Updated by Sage Weil over 8 years ago

  • Status changed from 7 to Resolved

Also available in: Atom PDF