Think to some modification to the API
-------------------------------------

                 Key: HADOOP-3482
                 URL: https://issues.apache.org/jira/browse/HADOOP-3482
             Project: Hadoop Core
          Issue Type: Improvement
            Reporter: Brice Arnould
            Priority: Minor


I know that it is out of question to break everything just for minor comfort 
improvements.
But I think that we should evaluate the cost of improving the API, and the way 
we might do this without too much breaks, before the API freeze of 1.0 . If we 
start now, it could be a gradual process that would end only with the 1.0 
release.

I do not particulary focus on those modifications, but here is a samples of 
what questions I would like to raise.
# Text could provide a append(Text other) method
# Text could implements CharSequence
# Some Iterators could be turned into IterableIterators.
# We could consider a more consistent naming (Text could be renamed 
TextWritable, JobConfigurable.configure() could be turn in 
JobConfigurable.setConf() to match Configurable and so on)

1. and 2. seems imediatly accessible, even if 1. would benefit of the use of a 
resizable container to store bytes.
3. requires in theory only the add of a new IterableIteror class inheriting of 
Iterator. But making that change visible to the user would require a change in 
some interface like Mapper and Reducer.
4. *Configurable:* If those Interfaces are only used in the ReflectionUtils, it 
would be enough to deprecate JobConfigurable and to consider it as a particular 
case of Configurable. Another option would be to deprecate both and to add 
support in newInstance for passing parameters to constructors.
*Text:* Text could be an empty class inheriting of TextWritable, in a package 
like org.hadoop.compat .


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

Reply via email to