[
https://issues.apache.org/jira/browse/HDFS-2492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13134024#comment-13134024
]
Steve Loughran commented on HDFS-2492:
--------------------------------------
an alternative to extending {{DNSToSwitchMapping}} would be to extend it with a
{{MultiRackDNSToSwitchMapping}} interface that would have a boolean
{{isMultiRack()}} condition to say whether or not the mapping was multirack;
the script mapper would implement this and decide for itself whether or not a
script existed and hence was multirack.
For backwards compatibility, any implementation that didn't implement the new
interface would be viewed as some custom plug in and could be assumed to be
multi-rack. why else would someone write a DNS mapper?
> BlockManager cross-rack replication checks only work for ScriptBasedMapping
> ---------------------------------------------------------------------------
>
> Key: HDFS-2492
> URL: https://issues.apache.org/jira/browse/HDFS-2492
> Project: Hadoop HDFS
> Issue Type: Bug
> Affects Versions: 0.23.0, 0.24.0
> Reporter: Steve Loughran
>
> The BlockManager cross-rack replication checks only works if script files are
> used for replication, not if alternate plugins provide the topology
> information.
> This is because the BlockManager sets its rack checking flag if there is a
> filename key
> {code}
> shouldCheckForEnoughRacks =
> conf.get(DFSConfigKeys.NET_TOPOLOGY_SCRIPT_FILE_NAME_KEY) != null;
> {code}
> yet this filename key is only used if the topology mapper defined by
> {code}
> DFSConfigKeys.NET_TOPOLOGY_NODE_SWITCH_MAPPING_IMPL_KEY
> {code}
> is an instance of {{ScriptBasedMapping}}
> If any other mapper is used, the system may be multi rack, but the Block
> Manager will not be aware of this fact unless the filename key is set to
> something non-null
--
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