Class HHXORErasureDecoder
java.lang.Object
org.apache.hadoop.conf.Configured
org.apache.hadoop.io.erasurecode.coder.ErasureDecoder
org.apache.hadoop.io.erasurecode.coder.HHXORErasureDecoder
- All Implemented Interfaces:
Configurable,ErasureCoder
Hitchhiker is a new erasure coding algorithm developed as a research project
at UC Berkeley by Rashmi Vinayak.
It has been shown to reduce network traffic and disk I/O by 25%-45% during
data reconstruction while retaining the same storage capacity and failure
tolerance capability of RS codes.
The Hitchhiker algorithm is described in K.V.Rashmi, et al.,
"A "Hitchhiker's" Guide to Fast and Efficient Data Reconstruction in
Erasure-coded Data Centers", in ACM SIGCOMM 2014.
This is Hitchhiker-XOR erasure decoder that decodes a block group.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanTell if direct or off-heap buffer is preferred or not.protected ErasureCodingStepprepareDecodingStep(ECBlockGroup blockGroup) Perform decoding against a block blockGroup.voidrelease()Release the resources if any.Methods inherited from class org.apache.hadoop.io.erasurecode.coder.ErasureDecoder
calculateCoding, getErasedIndexes, getInputBlocks, getNumDataUnits, getNumErasedBlocks, getNumErasedBlocks, getNumParityUnits, getOptions, getOutputBlocksMethods inherited from class org.apache.hadoop.conf.Configured
getConf, setConfMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.hadoop.conf.Configurable
getConf, setConf
-
Constructor Details
-
HHXORErasureDecoder
-
-
Method Details
-
prepareDecodingStep
Description copied from class:ErasureDecoderPerform decoding against a block blockGroup.- Specified by:
prepareDecodingStepin classErasureDecoder- Parameters:
blockGroup- blockGroup.- Returns:
- decoding step for caller to do the real work
-
preferDirectBuffer
public boolean preferDirectBuffer()Description copied from interface:ErasureCoderTell if direct or off-heap buffer is preferred or not. It's for callers to decide how to allocate coding chunk buffers, either on heap or off heap. It will return false by default.- Specified by:
preferDirectBufferin interfaceErasureCoder- Overrides:
preferDirectBufferin classErasureDecoder- Returns:
- true if direct buffer is preferred for performance consideration, otherwise false.
-
release
public void release()Description copied from interface:ErasureCoderRelease the resources if any. Good chance to invoke RawErasureCoder#release.- Specified by:
releasein interfaceErasureCoder- Overrides:
releasein classErasureDecoder
-