hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Todd Lipcon (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-4417) HDFS-347: fix case where local reads get disabled incorrectly
Date Mon, 21 Jan 2013 21:26:12 GMT

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

Todd Lipcon commented on HDFS-4417:
-----------------------------------

{code}
-  private Peer newPeer(InetSocketAddress addr) throws IOException {
+  private Peer newRemotePeer(InetSocketAddress addr) throws IOException {
{code}

How about {{newTcpPeer}}? Remote is kind of vague.

----

{code}
+  public static DomainSocket getClosedSocket() {
+    return new DomainSocket("", -1);
+  }
{code}

This doesn't seem like a reasonable thing to expose. Instead, since it's just used from tests,
could you just create a mock DomainSocket object which throws ClosedChannelException on write?

----

I think the changes to PeerCache are a little over-complicated... why not just have two separate
PeerCaches, one for each type of peer?

                
> HDFS-347: fix case where local reads get disabled incorrectly
> -------------------------------------------------------------
>
>                 Key: HDFS-4417
>                 URL: https://issues.apache.org/jira/browse/HDFS-4417
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: datanode, hdfs-client, performance
>            Reporter: Todd Lipcon
>            Assignee: Colin Patrick McCabe
>         Attachments: HDFS-4417.002.patch, hdfs-4417.txt
>
>
> In testing HDFS-347 against HBase (thanks [~jdcryans]) we ran into the following case:
> - a workload is running which puts a bunch of local sockets in the PeerCache
> - the workload abates for a while, causing the sockets to go "stale" (ie the DN side
disconnects after the keepalive timeout)
> - the workload starts again
> In this case, the local socket retrieved from the cache failed the newBlockReader call,
and it incorrectly disabled local sockets on that host. This is similar to an earlier bug
HDFS-3376, but not quite the same.
> The next issue we ran into is that, once this happened, it never tried local sockets
again, because the cache held lots of TCP sockets. Since we always managed to get a cached
socket to the local node, it didn't bother trying local read again.

--
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

Mime
View raw message