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

Li Bo commented on HDFS-7854:
-----------------------------

Thanks for Jing's careful review. I will upload a new patch later.

1.      Yes, we can also keep these fields in DFSOutputStream. But I think it’d 
better to put them in DataStreamer. DataStreamer is responsible for writing 
blocks, while DFSOutputStream just puts packets into DataStreamer. And if 
there’re multiple DataStreamers in DFSOutputStream, it’s not necessary to 
maintain an array of each field in DFSOutputStream .
2.      Will fix it in new patch.
3.      Will fix it in new patch.
4.      Will fix it in new patch. 
5 & 6 Because DFSOutputStream also needs to add packets to dataQueue, I think 
it’d better to let DFSOutputStream maintain these two queues and transfer them 
to DataStreamer via its constructor.
7. We have moved several fields from DFSOutputStream to DataStreamer, after 
{{streamer = null}}, these fields can’t be accessed. So a new field 
{{toTerminate}} is imported. {{toTerminate = true}} equals to {{streamer = 
null}}, {{if(\!toTerminate)}} equals to {{if(streamer!=null)}}. If we use 
{{streamerClosed}} instead of {{toTerminate}},  I think we may change the 
original logic and cause new errors(I will run unit tests later to see if the 
replacement will cause new errors and why). 
8. {{DFSOupuStream.src}}: this is a way to avoid the findbugs warning, will fix 
it in new patch.


> Separate class DataStreamer out of DFSOutputStream
> --------------------------------------------------
>
>                 Key: HDFS-7854
>                 URL: https://issues.apache.org/jira/browse/HDFS-7854
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Li Bo
>            Assignee: Li Bo
>         Attachments: HDFS-7854-001.patch, HDFS-7854-002.patch, 
> HDFS-7854-003.patch
>
>
> This sub task separate DataStreamer from DFSOutputStream. New DataStreamer 
> will accept packets and write them to remote datanodes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to