Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
Description
HADOOP-15229 added a "FileSystem builder-based openFile() API" that allows specifying configuration values for opening files (similar to HADOOP-14365).
Support for openFile will be a little tricky as it is asynchronous and FutureDataInputStreamBuilder#build returns a CompletableFuture.
At a high level, the API for openFile could look something like this:
hdfsFile hdfsOpenFile(hdfsFS fs, const char* path, int flags, int bufferSize, short replication, tSize blocksize); hdfsOpenFileBuilder *hdfsOpenFileBuilderAlloc(hdfsFS fs, const char *path); hdfsOpenFileBuilder *hdfsOpenFileBuilderMust(hdfsOpenFileBuilder *builder, const char *key, const char *value); hdfsOpenFileBuilder *hdfsOpenFileBuilderOpt(hdfsOpenFileBuilder *builder, const char *key, const char *value); hdfsOpenFileFuture *hdfsOpenFileBuilderBuild(hdfsOpenFileBuilder *builder); void hdfsOpenFileBuilderFree(hdfsOpenFileBuilder *builder); hdfsFile hdfsOpenFileFutureGet(hdfsOpenFileFuture *future); hdfsFile hdfsOpenFileFutureGetWithTimeout(hdfsOpenFileFuture *future, int64_t timeout, javaConcurrentTimeUnit timeUnit); int hdfsOpenFileFutureCancel(hdfsOpenFileFuture *future, int mayInterruptIfRunning); void hdfsOpenFileFutureFree(hdfsOpenFileFuture *future);
Instead of exposing all the functionality of CompleteableFuture libhdfs would just expose the functionality of Future.
Attachments
Issue Links
- depends upon
-
HADOOP-16759 Filesystem openFile() builder to take a FileStatus param
- Resolved
- is depended upon by
-
IMPALA-8523 Migrate hdfsOpen to builder-based openFile API
- Open
- is related to
-
HADOOP-15229 Add FileSystem builder-based openFile() API to match createFile(); S3A to implement S3 Select through this API.
- Resolved
-
HDFS-14564 Add libhdfs APIs for readFully; add readFully to ByteBufferPositionedReadable
- Resolved
- relates to
-
HADOOP-16202 Enhance openFile() for better read performance against object stores
- Resolved
- links to