[ 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