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

Ming Ma commented on HDFS-11412:
--------------------------------

bq. this particular range can have adverse effects as it can force replicate to 
larger number of blocks (to honor minReplicationToBeInMaintenance) even for the 
files that aren't created with higher replication factor.
It can choose to only force the replication up to the replication factor of 
that files. So for most files which have default replication factor, the less 
of {default replication factor, minReplicationToBeInMaintenance} will be used 
as the min replication value f during maintenance. So the impact should be 
similar to setting minReplicationToBeInMaintenance to default replication 
factor. Also this is similar to how the following case will be handled. Set 
minReplicationToBeInMaintenance to the default replication factor. For files 
with replication factor of 2, 2 will be used the value for the min replication 
value.

 bq. May be we need to return the max or min value based on how the block 
replication is set compared to the default replication
Maybe we can modify getMinReplicationToBeInMaintenance to return the less of 
{file replication factor, minReplicationToBeInMaintenance}.

> Maintenance minimum replication config value allowable range should be {0 - 
> DefaultReplication}
> -----------------------------------------------------------------------------------------------
>
>                 Key: HDFS-11412
>                 URL: https://issues.apache.org/jira/browse/HDFS-11412
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: datanode, namenode
>    Affects Versions: 3.0.0-alpha1
>            Reporter: Manoj Govindassamy
>            Assignee: Manoj Govindassamy
>         Attachments: HDFS-11412.01.patch
>
>
> Currently the allowed value range for Maintenance Min Replication 
> {{dfs.namenode.maintenance.replication.min}} is 0 to 
> {{dfs.namenode.replication.min}} (default=1). Users wanting not to affect the 
> performance of the cluster would wish to have the Maintenance Min Replication 
> number greater than 1, say 2. In the current design, it is possible to have 
> this Maintenance Min Replication configuration, but only after changing the 
> NameNode level Block Min Replication to 2, and which could slowdown the 
> overall latency for client writes.
> Technically speaking we should be allowing Maintenance Min Replication to be 
> in range 0 to dfs.replication.max.  
> * There is always config value of 0 for users not wanting any 
> availability/performance during maintenance. 
> * And, performance centric workloads can still get maintenance done without 
> major disruptions by having a bigger Maintenance Min Replication. Setting the 
> upper limit as dfs.replication.max could be an overkill as it could trigger 
> re-replication which Maintenance State is trying to avoid. So, we could allow 
> the {{dfs.namenode.maintenance.replication.min}} in the range {{0 to 
> dfs.replication}}
> {noformat}
>     if (minMaintenanceR < 0) {
>       throw new IOException("Unexpected configuration parameters: "
>           + DFSConfigKeys.DFS_NAMENODE_MAINTENANCE_REPLICATION_MIN_KEY
>           + " = " + minMaintenanceR + " < 0");
>     }
>     if (minMaintenanceR > minR) {
>       throw new IOException("Unexpected configuration parameters: "
>           + DFSConfigKeys.DFS_NAMENODE_MAINTENANCE_REPLICATION_MIN_KEY
>           + " = " + minMaintenanceR + " > "
>           + DFSConfigKeys.DFS_NAMENODE_REPLICATION_MIN_KEY
>           + " = " + minR);
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to