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(ExtendedCell 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(ExtendedCell 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
 
 -