Tak-Lon (Stephen) Wu created HBASE-30528:
--------------------------------------------

             Summary: Avoid redundant getFileInfo when opening plain HFiles
                 Key: HBASE-30528
                 URL: https://issues.apache.org/jira/browse/HBASE-30528
             Project: HBase
          Issue Type: Improvement
            Reporter: Tak-Lon (Stephen) Wu


During a recent integration with Ozone as additional file system, we found that 
createReaderContext has an additional getFileInfo. 

RegionServers already know plain store file size (and often FileStatus) from 
compaction output, store file listing, or tracker registration. Despite that, 
StoreFileInfo.createReaderContext() and getReferencedFileStatus() could call 
fs.getFileStatus() again on every reader open, and HDFS client open() could 
issue another metadata lookup (getFileInfo).

For plain HFiles (not links or references):
* Cache or synthesize FileStatus on StoreFileInfo and reuse it in
  createReaderContext, getReferencedFileStatus, and block distribution.
* Open read streams via FSUtils.openForRead(), using
  FileSystem.openFile(path).withFileStatus(status) when supported, with
  fallback to fs.open(path).

Links and references are unchanged and still stat the referred path as before.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to