[ 
https://issues.apache.org/jira/browse/HDFS-524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12739192#action_12739192
 ] 

Konstantin Boudnik commented on HDFS-524:
-----------------------------------------

As I've suspected it was my ignorance talking - not me :-)

After some more careful reading of the code, it turned out to me that 
- while {{Op}} might be a good candidate to become a factory which will be 
handling instantiation of all these new operation specific classes
- {{DataXceiver}} might not need to extend {{DataTransferProtocol.Receiver}} as 
soon as all operations are pulled out into a separate classes
it won't solve all the problems.

The biggest one, in my opinion, is that {{DataTransferProtocol.Receiver}} has 
two inner classes {{Sender}} and {{Receiver}} which have their own sets of 
unique operations to read, write, and copy blocks. Although, it might be 
possible to generalize those with some combination of polymorphism and 
delegation, it won't improve the current situation and will, perhaps, degrade 
the existing design.

I guess I'm ready to withdraw my initial comment - thanks for crashing it :-) !

> Further DataTransferProtocol code refactoring.
> ----------------------------------------------
>
>                 Key: HDFS-524
>                 URL: https://issues.apache.org/jira/browse/HDFS-524
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: data-node
>    Affects Versions: 0.21.0
>            Reporter: Tsz Wo (Nicholas), SZE
>            Assignee: Tsz Wo (Nicholas), SZE
>             Fix For: 0.21.0
>
>         Attachments: h524_20090803.patch
>
>
> This is a further refactoring over HDFS-377 to move generic codes from 
> DataXceiver to DataTransferProtocol.

-- 
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