steveloughran commented on a change in pull request #1830: HADOOP-11867: Add gather API to file system. URL: https://github.com/apache/hadoop/pull/1830#discussion_r374652628
########## File path: hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/PositionedReadable.java ########## @@ -85,4 +89,37 @@ void readFully(long position, byte[] buffer, int offset, int length) * the read operation completed */ void readFully(long position, byte[] buffer) throws IOException; + + /** + * What is the smallest reasonable seek? + * @return the minimum number of bytes + */ + default int minimumReasonableSeek() { + return 4 * 1024; + } + + /** + * What is the largest size that we should group ranges together as? + * @return the number of bytes to read at once + */ + default int maximumReadSize() { + return 1024 * 1024; + } + + /** + * Read fully a list of file ranges asynchronously from this file. + * The default iterates through the ranges to read each synchronously, but + * the intent is that FSDataInputStream subclasses can make more efficient + * readers. + * As a result of the call, each range will have FileRange.setData(CompletableFuture) + * called with a future that when complete will have a ByteBuffer with the + * data from the file's range. + * @param ranges the byte ranges to read + * @param allocate the function to allocate ByteBuffer + */ + default void readAsync(List<? extends FileRange> ranges, Review comment: I really like `default`; makes maintenance of interfaces way less brittle, as now we can add methods. ironic it took a need from Oracle themselves to force the feature to go in ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org