[
https://issues.apache.org/jira/browse/HADOOP-8292?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13271000#comment-13271000
]
Todd Lipcon commented on HADOOP-8292:
-------------------------------------
Few quick notes (didn't look in serious detail yet):
- is it OK to be doing file system access while holding this lock, and in the
"hot path" of resolve? I worry that this might slow down client requests, for
example.
- I think we should avoid reading the file if the modification time is within
the last couple of seconds -- with some editors and config management systems,
updating a file might temporarily leave it in an empty state before re-filling
it again with the new data. Well behaved systems won't do that, but I think
it's better for us to be resilient to it than for us to end up loading an empty
topology mapping.
- clearCache() is called from resolve() without the lock held. That might cause
multiple threads to call clear() on a map at once, which might result in an
exception or something.
How does this interact with the HDFS topology code which needs to check when a
cluster changes from single-rack to multi-rack? When a node's topology changes,
don't we need to re-check replication policies for all the blocks, etc? Maybe
this isn't a new issue, but it's certainly strange.
> TableMapping does not refresh when topology is updated
> ------------------------------------------------------
>
> Key: HADOOP-8292
> URL: https://issues.apache.org/jira/browse/HADOOP-8292
> Project: Hadoop Common
> Issue Type: Bug
> Affects Versions: 2.0.0
> Reporter: Philip Zeyliger
> Assignee: Alejandro Abdelnur
> Attachments: HADOOP-8292.patch
>
>
> HADOOP-7030 introduced TableMapping, an implementation of DNSToSwitchMapping
> which uses a file to map from IPs/hosts to their racks. It's intended to
> replace ScriptBasedMapping for cases where the latter was just a complicated
> way of looking up the rack in a file.
> Though there was discussion of it on the JIRA, the TableMapping
> implementation is not 'refreshable'. i.e., if you want to add a host to your
> cluster, and that host wasn't in the topology file to begin with, it will
> never be added.
> TableMapping should refresh, either based on a command that can be executed,
> or, perhaps, if the file on disk changes.
> I'll also point out that TableMapping extends CachedDNSToSwitchMapping, but,
> since it does no refreshing, I don't see what the caching gets you: I think
> the cache ends up being a second copy of the underlying map, always.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira