[ 
https://issues.apache.org/jira/browse/HBASE-9870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13811492#comment-13811492
 ] 

Anoop Sam John commented on HBASE-9870:
---------------------------------------

I mean the data already there in HFiles (on disk).  That will be with old 
encoding algo. Now the new encoding algo for on disk and in cache is same but 
different from this old one. When we read data from old HFiles and have to load 
to block cache we need a decoding 1st and then encoding which we are not at all 
doing now.  We expect the either the HFile data is with no encoding or with 
same encoding as what block cache expecting.

> 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)

Reply via email to