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