[ 
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

        

Reply via email to