You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-dev@hadoop.apache.org by "Chris Douglas (JIRA)" <ji...@apache.org> on 2009/09/08 02:47:57 UTC

[jira] Created: (MAPREDUCE-960) Unnecessary copy in mapreduce.lib.input.KeyValueLineRecordReader

Unnecessary copy in mapreduce.lib.input.KeyValueLineRecordReader
----------------------------------------------------------------

                 Key: MAPREDUCE-960
                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-960
             Project: Hadoop Map/Reduce
          Issue Type: Improvement
            Reporter: Chris Douglas
            Assignee: Chris Douglas


KeyValueLineRecordReader effects the copy from the line to the key/value by creating separate arrays:
{noformat}
      int keyLen = pos;
      byte[] keyBytes = new byte[keyLen];
      System.arraycopy(line, 0, keyBytes, 0, keyLen);
      int valLen = lineLen - keyLen - 1;
      byte[] valBytes = new byte[valLen];
      System.arraycopy(line, pos + 1, valBytes, 0, valLen);
      key.set(keyBytes);
      value.set(valBytes);
{noformat}
Since set triggers another copy and Text has a set taking {{byte[], off, len}}, the intermediate copy can be avoided

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.