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