Project

General

Profile

Actions

Pyramid Erasure Code » History » Revision 2

« Previous | Revision 2/3 (diff) | Next »
Jessica Mack, 06/23/2015 09:24 PM


Pyramid Erasure Code

Summary

Pyramid codes can be used to avoid using inter datacenter bandwidth when recovering from the loss of a single OSD.
Let say an erasure coded pool is configured so that an object is split in 10 data chunks (X1 to X10) and 4 parity chunks (P1 to P4) and the crush map splits the chunks evenly in two datacenters (X1,X2,X3,X4,X5,P1,P2 in datacenter 1 and X6,X7,X8,X9,X10,P3,P4 in datacenter 2). If X3 is missing, all chunks are needed to recover it. If the primary OSD in charge of scrubbing is X1 (i.e. in datacenter 1), it will need to get X6,X7,X8,X9,X10,P3,P4 from datacenter 2.
One additional parity chunk is calculated in each datacenter. The S1 chunk is calculated with the chunks from datacenter 1 and is stored in datacenter 1. The S2 chunk is calculated with the chunks from datacenter 2 and is stored in datacenter 2. If X3 is missing and X1 is the primary OSD in charge of scrubbing, it can use X1,X2,X4,X5 and S1 to recover X3 instead of reading from datacenter 2. Reading all chunks is only required when more than one chunk goes missing in the same data center.

Owners

Interested PartiesEdit section

  • Name (Affiliation)
  • Name (Affiliation)
  • Name

Work items

http://pad.ceph.com/p/cdsgiant-pyramid-erasure-code

Updated by Jessica Mack almost 9 years ago · 2 revisions