[
https://issues.apache.org/jira/browse/HBASE-9870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13845510#comment-13845510
]
Jimmy Xiang commented on HBASE-9870:
------------------------------------
There is no solid proof that this is an actually issue causing data loss in
IntegrationTestBigLinkedList if online encoding change is enabled. It is an
improvement to make the data encoding in cache the same as that on disk, to
simplify the code and avoid confusion. For now, I think we may not need this
in 0.94.
> 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
> Assignee: Jimmy Xiang
> Fix For: 0.98.0, 0.96.1
>
> Attachments: trunk-9870.patch, trunk-9870_v2.patch,
> trunk-9870_v3.patch
>
>
> 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.4#6159)