[ 
https://issues.apache.org/jira/browse/HBASE-27636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Duo Zhang resolved HBASE-27636.
-------------------------------
    Fix Version/s: 2.6.0
                   3.0.0-alpha-4
                   2.4.17
                   2.5.4
     Hadoop Flags: Reviewed
       Resolution: Fixed

Pushed to branch-2.4+.

Thanks [~selina.yan] for contributing!

> 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
>             Fix For: 2.6.0, 3.0.0-alpha-4, 2.4.17, 2.5.4
>
>
> 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)

Reply via email to