Package org.apache.hadoop.hbase.io.hfile
Class HFileDataBlockEncoderImpl
java.lang.Object
org.apache.hadoop.hbase.io.hfile.HFileDataBlockEncoderImpl
- All Implemented Interfaces:
HFileDataBlockEncoder
Do different kinds of data block encoding according to column family options.
-
Field Summary
FieldsFields inherited from interface org.apache.hadoop.hbase.io.hfile.HFileDataBlockEncoder
DATA_BLOCK_ENCODING -
Constructor Summary
ConstructorsConstructorDescriptionHFileDataBlockEncoderImpl(DataBlockEncoding encoding) Do data block encoding with specified options. -
Method Summary
Modifier and TypeMethodDescriptionstatic HFileDataBlockEncodercreateFromFileInfo(HFileInfo fileInfo) voidencode(Cell cell, HFileBlockEncodingContext encodingCtx, DataOutputStream out) Encodes a KeyValue.voidendBlockEncoding(HFileBlockEncodingContext encodingCtx, DataOutputStream out, byte[] uncompressedBytesWithHeader, BlockType blockType) Ends encoding for a block of KeyValues.Returns the data block encodinggetEffectiveEncodingInCache(boolean isCompaction) newDataBlockDecodingContext(org.apache.hadoop.conf.Configuration conf, HFileContext fileContext) create a encoder specific decoding context for reading.newDataBlockEncodingContext(org.apache.hadoop.conf.Configuration conf, byte[] dummyHeader, HFileContext fileContext) Create an encoder specific encoding context object for writing.voidsaveMetadata(HFile.Writer writer) Save metadata in HFile which will be written to diskvoidstartBlockEncoding(HFileBlockEncodingContext encodingCtx, DataOutputStream out) Starts encoding for a block of KeyValues.toString()booleanDecides whether we should use a scanner over encoded blocks.booleanuseEncodedScanner(boolean isCompaction)
-
Field Details
-
encoding
-
-
Constructor Details
-
HFileDataBlockEncoderImpl
Do data block encoding with specified options.- Parameters:
encoding- What kind of data block encoding will be used.
-
-
Method Details
-
createFromFileInfo
- Throws:
IOException
-
saveMetadata
Description copied from interface:HFileDataBlockEncoderSave metadata in HFile which will be written to disk- Specified by:
saveMetadatain interfaceHFileDataBlockEncoder- Parameters:
writer- writer for a given HFile- Throws:
IOException- on disk problems
-
getDataBlockEncoding
Description copied from interface:HFileDataBlockEncoderReturns the data block encoding- Specified by:
getDataBlockEncodingin interfaceHFileDataBlockEncoder
-
useEncodedScanner
-
getEffectiveEncodingInCache
- Specified by:
getEffectiveEncodingInCachein interfaceHFileDataBlockEncoder- Returns:
- the effective in-cache data block encoding, taking into account whether we are doing a compaction.
-
encode
public void encode(Cell cell, HFileBlockEncodingContext encodingCtx, DataOutputStream out) throws IOException Description copied from interface:HFileDataBlockEncoderEncodes a KeyValue.- Specified by:
encodein interfaceHFileDataBlockEncoder- Throws:
IOException
-
useEncodedScanner
Description copied from interface:HFileDataBlockEncoderDecides whether we should use a scanner over encoded blocks.- Specified by:
useEncodedScannerin interfaceHFileDataBlockEncoder- Returns:
- Whether to use encoded scanner.
-
toString
-
newDataBlockEncodingContext
public HFileBlockEncodingContext newDataBlockEncodingContext(org.apache.hadoop.conf.Configuration conf, byte[] dummyHeader, HFileContext fileContext) Description copied from interface:HFileDataBlockEncoderCreate an encoder specific encoding context object for writing. And the encoding context should also perform compression if compressionAlgorithm is valid.- Specified by:
newDataBlockEncodingContextin interfaceHFileDataBlockEncoder- Parameters:
conf- store configurationdummyHeader- header bytesfileContext- HFile meta data- Returns:
- a new
HFileBlockEncodingContextobject
-
newDataBlockDecodingContext
public HFileBlockDecodingContext newDataBlockDecodingContext(org.apache.hadoop.conf.Configuration conf, HFileContext fileContext) Description copied from interface:HFileDataBlockEncodercreate a encoder specific decoding context for reading. And the decoding context should also do decompression if compressionAlgorithm is valid.- Specified by:
newDataBlockDecodingContextin interfaceHFileDataBlockEncoder- Parameters:
conf- store configurationfileContext- - HFile meta data- Returns:
- a new
HFileBlockDecodingContextobject
-
startBlockEncoding
public void startBlockEncoding(HFileBlockEncodingContext encodingCtx, DataOutputStream out) throws IOException Description copied from interface:HFileDataBlockEncoderStarts encoding for a block of KeyValues. CallHFileDataBlockEncoder.endBlockEncoding(HFileBlockEncodingContext, DataOutputStream, byte[], BlockType)to finish encoding of a block.- Specified by:
startBlockEncodingin interfaceHFileDataBlockEncoder- Throws:
IOException
-
endBlockEncoding
public void endBlockEncoding(HFileBlockEncodingContext encodingCtx, DataOutputStream out, byte[] uncompressedBytesWithHeader, BlockType blockType) throws IOException Description copied from interface:HFileDataBlockEncoderEnds encoding for a block of KeyValues. Gives a chance for the encoder to do the finishing stuff for the encoded block. It must be called at the end of block encoding.- Specified by:
endBlockEncodingin interfaceHFileDataBlockEncoder- Throws:
IOException
-