[
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