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

Todd Lipcon commented on HDFS-4353:
-----------------------------------

Looking almost ready. A few minor nits:

{code}
+     * it has been configured-- like when we're reading from the last replica
+     * of a block.
{code}
This description is a little unclear to me. Better to say "such as when the 
caller has explicitly asked for a file to be opened without checksum 
verification."

----

{code}
   public static BlockReader newBlockReader(Params params) throws IOException {
+    assert(params.getPeer() != null);
+    assert(params.getBlock() != null);
+    assert(params.getDatanodeID() != null);
{code}

I think {{Preconditions.checkArgument}} is more appropriate here - the checks 
are cheap (likely free) null checks, so we may as well always verify them.

----

{code}
+      // TODO: create a wrapper class that makes channel-less sockets look like
+      // they have a channel, so that we can finally remove the legacy
+      // RemoteBlockReader.
{code}
Can you reference the JIRA for removing RBR here? I know we have one filed 
somewhere.


+1 after these are addressed.

                
> 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, 02c.patch, 02c.patch, 
> 02-cumulative.patch, 02d.patch, 02e.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