From: Loic Dachary Date: Mon, 30 Jun 2014 08:19:23 +0000 (+0200) Subject: erasure-code: add definitions to the glossary X-Git-Tag: v0.84~173^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1dfe913af2478df24985e88163ed37f95df5cc7d;p=ceph.git erasure-code: add definitions to the glossary and fix a typo Signed-off-by: Loic Dachary --- diff --git a/doc/dev/osd_internals/erasure_coding.rst b/doc/dev/osd_internals/erasure_coding.rst index 7eec93dec22d..33c1a94003ac 100644 --- a/doc/dev/osd_internals/erasure_coding.rst +++ b/doc/dev/osd_internals/erasure_coding.rst @@ -7,7 +7,7 @@ Glossary *chunk* when the encoding function is called, it returns chunks of the same - size. Data chunks which can be concated to reconstruct the original + size. Data chunks which can be concatenated to reconstruct the original object and coding chunks which can be used to rebuild a lost chunk. *chunk rank* @@ -25,9 +25,30 @@ Glossary object. For a given placement group, each OSD contains shards of the same rank. When dealing with objects that are encoded with a single operation, *chunk* is sometime used instead of *shard* - because the shard is made of a single chunk. + because the shard is made of a single chunk. The *chunks* in a + *shard* are ordered according to the rank of the stripe they belong + to. -The definitions are illustrated as follows: +*K* + the number of data *chunks*, i.e. the number of *chunks* in which the + original object is divided. For instance if *K* = 2 a 10KB object + will be divided into *K* objects of 5KB each. + +*M* + the number of coding *chunks*, i.e. the number of additional *chunks* + computed by the encoding functions. If there are 2 coding *chunks*, + it means 2 OSDs can be out without loosing data. + +*N* + the number of data *chunks* plus the number of coding *chunks*, + i.e. *K+M*. + +*rate* + the proportion of the *chunks* that contains useful information, i.e. *K/N*. + For instance, for *K* = 9 and *M* = 3 (i.e. *K+M* = *N* = 12) the rate is + *K* = 9 / *N* = 12 = 0.75, i.e. 75% of the chunks contain useful information. + +The definitions are illustrated as follows (PG stands for placement group): :: OSD 40 OSD 33 @@ -36,15 +57,16 @@ The definitions are illustrated as follows: |+------ object O -------+| |+------ object O -------+| ||+---------------------+|| ||+---------------------+|| stripe||| chunk 0 ||| ||| chunk 1 ||| ... - 0 ||| [0,+N) ||| ||| [0,+N) ||| + 0 ||| stripe 0 ||| ||| stripe 0 ||| ||+---------------------+|| ||+---------------------+|| ||+---------------------+|| ||+---------------------+|| stripe||| chunk 0 ||| ||| chunk 1 ||| ... - 1 ||| [N,+N) ||| ||| [N,+N) ||| + 1 ||| stripe 1 ||| ||| stripe 1 ||| + ||+---------------------+|| ||+---------------------+|| ||+---------------------+|| ||+---------------------+|| + stripe||| chunk 0 ||| ||| chunk 1 ||| ... + 2 ||| stripe 2 ||| ||| stripe 2 ||| ||+---------------------+|| ||+---------------------+|| - stripe||| chunk 0 [N*2,+len) ||| ||| chunk 1 [N*2,+len) ||| ... - 2 ||+---------------------+|| ||+---------------------+|| |+-----------------------+| |+-----------------------+| | ... | | ... | +-------------------------+ +-------------------------+