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

Colin Patrick McCabe commented on HDFS-4353:
--------------------------------------------

bq. did this timeout setting (just after the newPeer call) get lost in the 
refactor?

Originally: read timeout set in {{newSocket}}, write timeout set in 
{{BlockReaderFactory#newBlockReader}}
Now: both timeouts set in {{BlockReaderFactory#newBlockReader}}

bq. peer.getOutputStream here calls new SocketOutputStream(channel, 0) – ie 
doesn't set a write timeout. However, the previous code here did set a write 
timeout. Does this turn out to not matter due to another call later?

{{DataXceiverServer#run}} sets a write timeout on the peer before passing it to 
{{DataXceiver}}.  However, {{DataXceiver}} plays with the write timeout a lot.  
I suppose we could move the write timeout into {{DataXceiver}} too, just to 
keep them in the same place.

[test failures]

* Looks like I have to put the "disable peer cache" test into a separate junit 
test, due to our use of a singleton here.

Also, {{LinkedListMultimap}} never calls {{equals}} at all, it seems, so I can 
leave off that part.
                
> Encapsulate connections to peers in Peer and PeerServer classes
> ---------------------------------------------------------------
>
>                 Key: HDFS-4353
>                 URL: https://issues.apache.org/jira/browse/HDFS-4353
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: datanode, hdfs-client
>    Affects Versions: 2.0.3-alpha
>            Reporter: Colin Patrick McCabe
>            Assignee: Colin Patrick McCabe
>         Attachments: 02b-cumulative.patch, 02-cumulative.patch
>
>
> Encapsulate connections to peers into the {{Peer}} and {{PeerServer}} 
> classes.  Since many Java classes may be involved with these connections, it 
> makes sense to create a container for them.  For example, a connection to a 
> peer may have an input stream, output stream, readablebytechannel, encrypted 
> output stream, and encrypted input stream associated with it.
> This makes us less dependent on the {{NetUtils}} methods which use 
> {{instanceof}} to manipulate socket and stream states based on the runtime 
> type.  it also paves the way to introduce UNIX domain sockets which don't 
> inherit from {{java.net.Socket}}.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to