steveloughran commented on code in PR #4787:
URL: https://github.com/apache/hadoop/pull/4787#discussion_r952394117


##########
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/VectoredReadUtils.java:
##########
@@ -114,21 +116,37 @@ private static void 
readNonByteBufferPositionedReadable(PositionedReadable strea
                                                           FileRange range,
                                                           ByteBuffer buffer) 
throws IOException {
     if (buffer.isDirect()) {
-      buffer.put(readInDirectBuffer(stream, range));
+      readInDirectBuffer(stream, range.getLength(), buffer);
       buffer.flip();
     } else {
       stream.readFully(range.getOffset(), buffer.array(),
               buffer.arrayOffset(), range.getLength());
     }
   }
 
-  private static byte[] readInDirectBuffer(PositionedReadable stream,
-                                           FileRange range) throws IOException 
{
-    // if we need to read data from a direct buffer and the stream doesn't
-    // support it, we allocate a byte array to use.
-    byte[] tmp = new byte[range.getLength()];
-    stream.readFully(range.getOffset(), tmp, 0, tmp.length);
-    return tmp;
+  /**
+   * Read bytes from stream into a byte buffer using an
+   * intermediate byte array.
+   * @param stream input stream.
+   * @param length number of bytes to read.
+   * @param buffer buffer to fill.
+   * @throws IOException any IOE.
+   */
+  private static void readInDirectBuffer(PositionedReadable stream,
+                                         int length,
+                                         ByteBuffer buffer) throws IOException 
{
+    int readBytes = 0;
+    int offset = 0;
+    byte[] tmp = new byte[TMP_BUFFER_MAX_SIZE];

Review Comment:
   make a min of length, TMP_BUFFER_MAX_SIZE for more efficiency on small reads



-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to