You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ma...@apache.org on 2009/03/19 18:43:28 UTC

svn commit: r756107 - in /hadoop/core/trunk: CHANGES.txt src/core/org/apache/hadoop/io/SequenceFile.java

Author: mahadev
Date: Thu Mar 19 17:43:27 2009
New Revision: 756107

URL: http://svn.apache.org/viewvc?rev=756107&view=rev
Log:
HADOOP-5196. avoiding unnecessary byte[] allocation in SequenceFile.CompressedBytes and SequenceFile.UncompressedBytes. (hong tang via mahadev)

Modified:
    hadoop/core/trunk/CHANGES.txt
    hadoop/core/trunk/src/core/org/apache/hadoop/io/SequenceFile.java

Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=756107&r1=756106&r2=756107&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Thu Mar 19 17:43:27 2009
@@ -171,6 +171,10 @@
     HADOOP-5521. Removes dependency of TestJobInProgress on RESTART_COUNT 
     JobHistory tag. (Ravi Gummadi via ddas)
 
+    HADOOP-5196. avoiding unnecessary byte[] allocation in 
+    SequenceFile.CompressedBytes and SequenceFile.UncompressedBytes.
+    (hong tang via mahadev)
+
   OPTIMIZATIONS
 
   BUG FIXES

Modified: hadoop/core/trunk/src/core/org/apache/hadoop/io/SequenceFile.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/core/org/apache/hadoop/io/SequenceFile.java?rev=756107&r1=756106&r2=756107&view=diff
==============================================================================
--- hadoop/core/trunk/src/core/org/apache/hadoop/io/SequenceFile.java (original)
+++ hadoop/core/trunk/src/core/org/apache/hadoop/io/SequenceFile.java Thu Mar 19 17:43:27 2009
@@ -600,11 +600,14 @@
     }
     
     private void reset(DataInputStream in, int length) throws IOException {
-      data = new byte[length];
+      if (data == null) {
+        data = new byte[length];
+      } else if (length > data.length) {
+        data = new byte[Math.max(length, data.length * 2)];
+      }
       dataSize = -1;
-      
-      in.readFully(data);
-      dataSize = data.length;
+      in.readFully(data, 0, length);
+      dataSize = length;
     }
     
     public int getSize() {
@@ -638,11 +641,14 @@
     }
 
     private void reset(DataInputStream in, int length) throws IOException {
-      data = new byte[length];
+      if (data == null) {
+        data = new byte[length];
+      } else if (length > data.length) {
+        data = new byte[Math.max(length, data.length * 2)];
+      } 
       dataSize = -1;
-
-      in.readFully(data);
-      dataSize = data.length;
+      in.readFully(data, 0, length);
+      dataSize = length;
     }
     
     public int getSize() {