[
https://issues.apache.org/jira/browse/HBASE-27636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Duo Zhang updated HBASE-27636:
------------------------------
Component/s: HFile
mapreduce
(was: hbase-connectors)
> The "CREATE_TIME_TS" value of the hfile generated by the HFileOutputFormat2
> class is 0
> --------------------------------------------------------------------------------------
>
> Key: HBASE-27636
> URL: https://issues.apache.org/jira/browse/HBASE-27636
> Project: HBase
> Issue Type: Bug
> Components: HFile, mapreduce
> Reporter: selina.yan
> Assignee: selina.yan
> Priority: Major
>
> When HFileOutputFormat2 is used to create an hfile, the CREATE_TIME_TS of
> hfileinfo will not be assigned when creating an hfileContext, resulting in
> the value of lastMajorCompactionAge is the timestamp of the current time.
> {code:java}
> ##HFileOutputFormat2.class
> HFileContextBuilder contextBuilder = new HFileContextBuilder()
> .withCompression(compression)
> .withChecksumType(HStore.getChecksumType(conf))
>
> .withBytesPerCheckSum(HStore.getBytesPerChecksum(conf))
> .withBlockSize(blockSize);
> ##get lastMajorCompactionTs metric
> lastMajorCompactionTs = this.region.getOldestHfileTs(true);
> ...
> long now = EnvironmentEdgeManager.currentTime();
> return now - lastMajorCompactionTs;
> ...
> ##
> public long getOldestHfileTs(boolean majorCompactionOnly) throws IOException {
> long result = Long.MAX_VALUE;
> for (HStore store : stores.values()) {
> Collection<HStoreFile> storeFiles = store.getStorefiles();
> ...
> for (HStoreFile file : storeFiles) {
> StoreFileReader sfReader = file.getReader();
> ...
> result = Math.min(result, reader.getFileContext().getFileCreateTime());
> }
> }
> return result == Long.MAX_VALUE ? 0 : result;
> }{code}
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)