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

Andrew Wang commented on HDFS-5366:
-----------------------------------

One interesting idea from the block replication code is having priorities for 
replication work based on the current and expected replication factor. Maybe a 
"0 of 3" case should be rescheduled elsewhere more quickly than the 10.5 minute 
dead datanode interval, while we let a mild case of "2 of 3" sit.

I don't think this will require tracking our own list of "stale" or "dead" 
nodes, just a list of nodes we've already tried for an outstanding request. We 
reset if we've tried all targets. I seem to remember the block recovery code or 
something doing this. Avoiding stale nodes might also be good enough, if we 
think that heartbeats are a good proxy for the DN's ability to cache/uncache. 
This probably isn't true for uncaching though, since as you've noted, a hung 
client could just hold onto a ZCR lease.

> recaching improvements
> ----------------------
>
>                 Key: HDFS-5366
>                 URL: https://issues.apache.org/jira/browse/HDFS-5366
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: namenode
>    Affects Versions: HDFS-4949
>            Reporter: Colin Patrick McCabe
>            Assignee: Colin Patrick McCabe
>
> There are a few things about our HDFS-4949 recaching strategy that could be 
> improved.
> * We should monitor the DN's maximum and current mlock'ed memory consumption 
> levels, so that we don't ask the DN to do stuff it can't.
> * We should not try to initiate caching on stale DataNodes (although we 
> should not recache things stored on such nodes until they're declared dead).
> * We might want to resend the {{DNA_CACHE}} or {{DNA_UNCACHE}} command a few 
> times before giving up.  Currently, we only send it once.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to