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)