]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ErasureCodeJerasure: define technique BlaumRoth
authorLoic Dachary <loic@dachary.org>
Thu, 29 Aug 2013 13:07:30 +0000 (15:07 +0200)
committerLoic Dachary <loic@dachary.org>
Tue, 10 Sep 2013 14:46:22 +0000 (16:46 +0200)
technique == "blaum_roth"

       ErasureCodeInterface (abstract)
       |
       -> ErasureCodeJerasure (abstract)
          |
          -> ErasureCodeJerasureLiberation
             |
             -> ErasureCodeJerasureBlaumRoth
                | == blaum_roth

Derived from Liberation it only overloads the prepare method to use
blaum_roth_coding_bitmatrix.

https://github.com/dachary/ceph/tree/wip-5879 refs #5879

Signed-off-by: Loic Dachary <loic@dachary.org>
src/osd/ErasureCodePluginJerasure/ErasureCodeJerasure.cc
src/osd/ErasureCodePluginJerasure/ErasureCodeJerasure.h
src/test/osd/TestErasureCodeJerasure.cc

index 386a025d621865a614e64e43cc2f0b7b64c180f8..7fb95177779e0dafd653c3b043355cded1a003d0 100644 (file)
@@ -349,3 +349,11 @@ void ErasureCodeJerasureLiberation::prepare() {
   bitmatrix = liberation_coding_bitmatrix(k, w);
   schedule = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix);
 }
+
+// 
+// ErasureCodeJerasureBlaumRoth
+//
+void ErasureCodeJerasureBlaumRoth::prepare() {
+  bitmatrix = blaum_roth_coding_bitmatrix(k, w);
+  schedule = jerasure_smart_bitmatrix_to_schedule(k, m, w, bitmatrix);
+}
index 00f7599f1fddfdcf8457aa9cb1e2951232229cdf..ddf6c7dcfd1620125d2bf96160a88c2084d90f26 100644 (file)
@@ -200,4 +200,13 @@ public:
   virtual void parse(const map<std::string,std::string> &parameters);
   virtual void prepare();
 };
+
+class ErasureCodeJerasureBlaumRoth : public ErasureCodeJerasureLiberation {
+public:
+  ErasureCodeJerasureBlaumRoth() :
+    ErasureCodeJerasureLiberation("blaum_roth")
+  {}
+
+  virtual void prepare();
+};
 #endif
index b46e1bd0d6221beecdb772321bc998ce573367f2..dfbd740e363f2b66860f4cf80be854380e089298 100644 (file)
@@ -31,6 +31,7 @@ typedef ::testing::Types<
   ErasureCodeJerasureCauchyOrig,
   ErasureCodeJerasureCauchyGood,
   ErasureCodeJerasureLiberation,
+  ErasureCodeJerasureBlaumRoth,
 > JerasureTypes;
 TYPED_TEST_CASE(ErasureCodeTest, JerasureTypes);