[ 
https://issues.apache.org/jira/browse/HADOOP-735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12465617
 ] 

Milind Bhandarkar commented on HADOOP-735:
------------------------------------------

The public static methods readInt and readVInt of WritableComparator had 
different contracts as far as exceptions are concerned. readVInt throws 
IOException if the supplied byte[] is smaller than expected, whereas readInt 
does not (it will throw ArrayIndexOutOfBounds exception, which being a 
RuntimeException, need not be declared.) The generated raw compare method 
contract will differ (or we will have to catch alll exceptions, log them and 
ignore them) if we are either using readVInt or readInt. That is the issue.

> The underlying data structure, ByteArrayOutputStream,  for buffer type of 
> Hadoop record is inappropriate
> --------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-735
>                 URL: https://issues.apache.org/jira/browse/HADOOP-735
>             Project: Hadoop
>          Issue Type: Bug
>          Components: record
>    Affects Versions: 0.9.2
>            Reporter: Runping Qi
>         Assigned To: Milind Bhandarkar
>             Fix For: 0.11.0
>
>         Attachments: BytesWritable.patch
>
>
> With ByteArrayOutputStream as the underlying data structure for a buffer, the 
> user is forced to convert it into a byte [] object in order to do any 
> operations other than sequence append on the buffer. The convertion will 
> create a new copy of bytes. That will cause huge performance problem. 
> It seems BytesWritable is a better replacement.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to