hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Douglas (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-5589) TupleWritable: Lift implicit limit on the number of values that can be stored
Date Thu, 23 Apr 2009 06:59:47 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-5589?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12701826#action_12701826
] 

Chris Douglas commented on HADOOP-5589:
---------------------------------------

Just a few minor nits:
* Instead of using {{BitSet::set(i, false)}}, {{BitSet::clear\(i)}} should accomplish the
same thing in {{TupleWritable::clearWritten}}; in the iterator, using {{clear}} is probably
more readable than {{flip}} though they're obviously equivalent.
* The size check in {{equals}} can be dropped, since {{BitSet}} also performs it in its {{equals}}
implementation
* The loop in readBitSet would be easier to read as:
{code}
    for (int offset = Long.SIZE; offset < nbits; offset += Byte.SIZE) {
{code}
* I'd replace {{setBit}} with the equivalent, single line of code in {{writeBitSet}}

The rest of the changes look good.

> TupleWritable: Lift implicit limit on the number of values that can be stored
> -----------------------------------------------------------------------------
>
>                 Key: HADOOP-5589
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5589
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: mapred
>    Affects Versions: 0.19.1
>            Reporter: Jingkei Ly
>            Assignee: Jingkei Ly
>         Attachments: HADOOP-5589-1.patch, HADOOP-5589-2.patch, HADOOP-5589-3.patch, HADOOP-5589-4.patch
>
>
> TupleWritable uses an instance field of the primitive type, long, which I presume is
so that it can quickly determine if a position has been written to in its array of Writables
(by using bit-shifting operations on the long field). The problem with this is that it implies
that there is a maximum limit of 64 values you can store in a TupleWritable.
> An example of a use-case where I think this would be a problem is if you had two MR jobs
with over 64 reduces tasks and you wanted to join the outputs with CompositeInputFormat  -
this will probably cause unexpected results in the current scheme.
> At the very least, the 64-value limit should be documented in TupleWritable.

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


Mime
View raw message