From 25cac0fea2d4a4cd40ea74e9c823e4410a7d3c10 Mon Sep 17 00:00:00 2001 From: Jamie Pryde Date: Wed, 11 Sep 2024 09:36:52 +0000 Subject: [PATCH] erasure-code/lrc: Change LRC default plugin from Jerasure to ISA Signed-off-by: Jamie Pryde --- doc/rados/operations/erasure-code-lrc.rst | 12 ++++++------ src/erasure-code/lrc/ErasureCodeLrc.cc | 3 +-- src/test/erasure-code/TestErasureCodeLrc.cc | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/doc/rados/operations/erasure-code-lrc.rst b/doc/rados/operations/erasure-code-lrc.rst index 5329603b9cb77..accd5d0ba36b8 100644 --- a/doc/rados/operations/erasure-code-lrc.rst +++ b/doc/rados/operations/erasure-code-lrc.rst @@ -2,9 +2,9 @@ Locally repairable erasure code plugin ====================================== -With the *jerasure* plugin, when an erasure coded object is stored on +With the *isa* plugin, when an erasure coded object is stored on multiple OSDs, recovering from the loss of one OSD requires reading -from *k* others. For instance if *jerasure* is configured with +from *k* others. For instance if *isa* is configured with *k=8* and *m=4*, recovering from the loss of one OSD requires reading from eight others. @@ -195,7 +195,7 @@ Minimal testing --------------- It is strictly equivalent to using a *K=2* *M=1* erasure code profile. The *DD* -implies *K=2*, the *c* implies *M=1* and the *jerasure* plugin is used +implies *K=2*, the *c* implies *M=1* and the *isa* plugin is used by default.: .. prompt:: bash $ @@ -253,11 +253,11 @@ the same rack as the lost chunk. **WARNING: PROMPTS ARE SELECTABLE** Testing with different Erasure Code backends -------------------------------------------- -LRC now uses jerasure as the default EC backend. It is possible to +LRC now uses ISA as the default EC backend. It is possible to specify the EC backend/algorithm on a per layer basis using the low level configuration. The second argument in layers='[ [ "DDc", "" ] ]' is actually an erasure code profile to be used for this level. The -example below specifies the ISA backend with the cauchy technique to +example below specifies the Jerasure backend with the cauchy technique to be used in the lrcpool.: .. prompt:: bash $ @@ -265,7 +265,7 @@ be used in the lrcpool.: ceph osd erasure-code-profile set LRCprofile \ plugin=lrc \ mapping=DD_ \ - layers='[ [ "DDc", "plugin=isa technique=cauchy" ] ]' + layers='[ [ "DDc", "plugin=jerasure technique=cauchy" ] ]' ceph osd pool create lrcpool erasure LRCprofile You could also use a different erasure code profile for each diff --git a/src/erasure-code/lrc/ErasureCodeLrc.cc b/src/erasure-code/lrc/ErasureCodeLrc.cc index eb8ebd8104569..b05df07c6145f 100644 --- a/src/erasure-code/lrc/ErasureCodeLrc.cc +++ b/src/erasure-code/lrc/ErasureCodeLrc.cc @@ -14,7 +14,6 @@ * version 2.1 of the License, or (at your option) any later version. * */ - #include #include @@ -232,7 +231,7 @@ int ErasureCodeLrc::layers_init(ostream *ss) if (layer.profile.find("m") == layer.profile.end()) layer.profile["m"] = stringify(layer.coding.size()); if (layer.profile.find("plugin") == layer.profile.end()) - layer.profile["plugin"] = "jerasure"; + layer.profile["plugin"] = "isa"; if (layer.profile.find("technique") == layer.profile.end()) layer.profile["technique"] = "reed_sol_van"; int err = registry.factory(layer.profile["plugin"], diff --git a/src/test/erasure-code/TestErasureCodeLrc.cc b/src/test/erasure-code/TestErasureCodeLrc.cc index 22caef3396dc7..6bfc25e7f0c19 100644 --- a/src/test/erasure-code/TestErasureCodeLrc.cc +++ b/src/test/erasure-code/TestErasureCodeLrc.cc @@ -417,7 +417,7 @@ TEST(ErasureCodeLrc, layers_init) EXPECT_EQ(0, lrc.layers_init(&cerr)); EXPECT_EQ("5", lrc.layers.front().profile["k"]); EXPECT_EQ("2", lrc.layers.front().profile["m"]); - EXPECT_EQ("jerasure", lrc.layers.front().profile["plugin"]); + EXPECT_EQ("isa", lrc.layers.front().profile["plugin"]); EXPECT_EQ("reed_sol_van", lrc.layers.front().profile["technique"]); } } -- 2.39.5