]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
erasure-code: add definitions to the glossary 2039/head
authorLoic Dachary <loic@dachary.org>
Mon, 30 Jun 2014 08:19:23 +0000 (10:19 +0200)
committerLoic Dachary <loic@dachary.org>
Mon, 30 Jun 2014 09:35:31 +0000 (11:35 +0200)
and fix a typo

Signed-off-by: Loic Dachary <loic@dachary.org>
doc/dev/osd_internals/erasure_coding.rst

index 7eec93dec22db7d200e3dd2c049cb384b3697049..33c1a94003acbb00c1025d2c8ff8791ea6603d72 100644 (file)
@@ -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   ||+---------------------+|| ||+---------------------+||
        |+-----------------------+| |+-----------------------+|
        |         ...             | |         ...             |
        +-------------------------+ +-------------------------+