[ https://issues.apache.org/jira/browse/HBASE-9870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13811646#comment-13811646 ]
Jimmy Xiang edited comment on HBASE-9870 at 11/1/13 9:05 PM: ------------------------------------------------------------- [~anoop.hbase], when we open a hfile, do we always use the encoding from the file? {code} // Read data block encoding algorithm name from file info. dataBlockEncoder = HFileDataBlockEncoderImpl.createFromFileInfo(fileInfo, preferredEncodingInCache); fsBlockReaderV2.setDataBlockEncoder(dataBlockEncoder); {code} was (Author: jxiang): [~anoop.hbase], when we open a hfile, do we also use the encoding from the file? {code} // Read data block encoding algorithm name from file info. dataBlockEncoder = HFileDataBlockEncoderImpl.createFromFileInfo(fileInfo, preferredEncodingInCache); fsBlockReaderV2.setDataBlockEncoder(dataBlockEncoder); {code} > HFileDataBlockEncoderImpl#diskToCacheFormat uses wrong format > ------------------------------------------------------------- > > Key: HBASE-9870 > URL: https://issues.apache.org/jira/browse/HBASE-9870 > Project: HBase > Issue Type: Bug > Reporter: Jimmy Xiang > > In this method, we have > {code} > if (block.getBlockType() == BlockType.ENCODED_DATA) { > if (block.getDataBlockEncodingId() == onDisk.getId()) { > // The block is already in the desired in-cache encoding. > return block; > } > {code} > This assumes onDisk encoding is the same as that of inCache. This is not > true when we change the encoding of a CF. This could be one of the reasons I > got data loss with online encoding change? > If I make sure onDisk == inCache all the time, my ITBLL with online encoding > change worked once for me. -- This message was sent by Atlassian JIRA (v6.1#6144)