The erasure coding API is flexibly configurable and hence comes with some new configuration options that are shown here. All configuration options can be set by creating an erasure-coding-site.xml
in the Hops configuration folder. Note that Hops comes with reasonable default values for all of these values. However, erasure coding needs to be enabled manually.
<value>
[
{
"id" : "xor",
"parity_dir" : "/raid",
"stripe_length" : 10,
"parity_length" : 1,
"priority" : 100,
"erasure_code" : "io.hops.erasure_coding.XORCode",
"description" : "XOR code"
},
{
"id" : "rs",
"parity_dir" : "/raidrs",
"stripe_length" : 10,
"parity_length" : 4,
"priority" : 300,
"erasure_code" : "io.hops.erasure_coding.ReedSolomonCode",
"description" : "ReedSolomonCode code"
},
{
"id" : "src",
"parity_dir" : "/raidsrc",
"stripe_length" : 10,
"parity_length" : 6,
"parity_length_src" : 2,
"erasure_code" : "io.hops.erasure_coding.SimpleRegeneratingCode",
"priority" : 200,
"description" : "SimpleRegeneratingCode code"
},
]
</value>
io.hops.erasure_coding.MapReduceEncodingManager
.io.hops.erasure_coding.MapReduceBlockRepairManager