Details
Description
Let us pass in a file status to openFile() so that S3A & ABFS will skip their own HEAD requests just to see if a file is there, a normal file and get its length + etag,
CompletableFuture<FSDataInputStream> streamF = fs.openFile(stat.getPath()) .withFileStatus(stat).build()
code opening files off a listing of everything in a directory can eliminate a lot of requests here.
Also: change the specification of openFile's completable future to say "returned stream may only raise FNFE, access restrictions on the first read"
That is: it's not just potentially an async open, it's possibly lazy evaluated entirely.
Attachments
Issue Links
- blocks
-
HADOOP-15620 Über-jira: S3A phase VI: Hadoop 3.3 features
- Resolved
- breaks
-
HADOOP-16853 ITestS3GuardOutOfBandOperations failing on versioned S3 buckets
- Resolved
- causes
-
HADOOP-16827 TestHarFileSystem.testInheritedMethodsImplemented broken
- Resolved
- is depended upon by
-
HDFS-14478 Add libhdfs APIs for openFile
- Resolved
- is related to
-
HADOOP-16101 Use lighter-weight alternatives to innerGetFileStatus where possible
- Open
-
HADOOP-16202 Enhance openFile() for better read performance against object stores
- Resolved
- relates to
-
TEZ-4522 Use OpenFile where FileStatus is available.
- Resolved
- links to