[ https://issues.apache.org/jira/browse/HBASE-6861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13585898#comment-13585898 ]
Ted Yu commented on HBASE-6861: ------------------------------- I think this can be closed. > HFileOutputFormat set TIMERANGE wrongly > --------------------------------------- > > Key: HBASE-6861 > URL: https://issues.apache.org/jira/browse/HBASE-6861 > Project: HBase > Issue Type: Bug > Reporter: Eugene Morozov > Priority: Minor > Attachments: diff > > > In case if timestamps for KeyValues specified differently for different > column families, then TIMERANGEs of both HFiles would be wrong. > Example (in pseudo code): my reducer has a condition > if ( condition ) { > keyValue = new KeyValue(.., CF1, .., timestamp, ..); > } else { > keyValue = new KeyValue(.., CF2, .., ..); // <- no timestamp > } > context.write( keyValue ); > These two keyValues would be written into two different HFiles. > But the code, which is actually write do the following: > // we now have the proper HLog writer. full steam ahead > kv.updateLatestStamp(this.now); > trt.includeTimestamp(kv); > wl.writer.append(kv); > Basically, two HFiles shares the same instance of trt (TimeRangeTracker), > which leads to the same TIMERANGEs of both of them. Which is definitely > incorrect, because first HFile must have TIMERANGE=timestamp...timestamp, > cause we do not write any other timestamps there. And another HFile must have > TIMERANGE=now...now by same meaning. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira