[ https://issues.apache.org/jira/browse/HBASE-9870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13810789#comment-13810789 ]
Jimmy Xiang commented on HBASE-9870: ------------------------------------ As to the fix, we should do a decoding from onDisk, then an encoding to inCache, if onDisk != inCache. What do you think, [~mcorgan]? > 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)