[ https://issues.apache.org/jira/browse/PHOENIX-6955?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
selina.yan updated PHOENIX-6955: -------------------------------- Description: 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} HFileContextBuilder contextBuilder = new HFileContextBuilder() .withCompression(compression) .withChecksumType(CompatUtil.getChecksumType(conf)) .withBytesPerCheckSum(CompatUtil.getBytesPerChecksum(conf)) .withBlockSize(blockSize) .withDataBlockEncoding(encoding) .withCellComparator(CellComparatorImpl.COMPARATOR); ##get lastMajorCompactionTs metriclastMajorCompactionTs = 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();{code} was: 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} ##MultiHfileOutputFormat.getNewWriter HFileContextBuilder contextBuilder = new HFileContextBuilder() .withCompression(compression) .withChecksumType(CompatUtil.getChecksumType(conf)) .withBytesPerCheckSum(CompatUtil.getBytesPerChecksum(conf)) .withBlockSize(blockSize) .withDataBlockEncoding(encoding) .withCellComparator(CellComparatorImpl.COMPARATOR); {code} > The value of region metric--lastMajorCompactionAge is wrong,when the hfile > is buckload file > -------------------------------------------------------------------------------------------- > > Key: PHOENIX-6955 > URL: https://issues.apache.org/jira/browse/PHOENIX-6955 > Project: Phoenix > Issue Type: Bug > Reporter: 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} > HFileContextBuilder contextBuilder = new HFileContextBuilder() > .withCompression(compression) > .withChecksumType(CompatUtil.getChecksumType(conf)) > > .withBytesPerCheckSum(CompatUtil.getBytesPerChecksum(conf)) > .withBlockSize(blockSize) > .withDataBlockEncoding(encoding) > .withCellComparator(CellComparatorImpl.COMPARATOR); > ##get lastMajorCompactionTs metriclastMajorCompactionTs = > 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();{code} -- This message was sent by Atlassian Jira (v8.20.10#820010)