You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by GitBox <gi...@apache.org> on 2021/05/24 11:27:15 UTC

[GitHub] [ozone] bshashikant commented on pull request #2271: HDDS-5252. PipelinePlacementPolicy filter out datanodes with not enough space.

bshashikant commented on pull request #2271:
URL: https://github.com/apache/ozone/pull/2271#issuecomment-846978968


   > @bshashikant Ah, just now I've a talk with @GlenGeng , he suggested that we could do better here.
   > 
   > We could make the `sizeRequired` to a new config item such as 'pipeline.reserved.space', may be default to 0.
   > So, with this new item, we could do the following things:
   > 
   > 1. use default, then we keep the same behavior as before, so users/developers who just want to do small tests or try out ozone will not be annoyed by some warning says that they have no space for pipeline creation.
   > 2. config it to some value for space reservation (should better be > container size), so then we could solve the problem here, too.
   >    Moreover, when we have this 'reserved.space' more than container size, say 20% of the volume capacity, then we can filter out the nodes with all its volumes with usage > 80%, which may not be a good choice for pipeline allocation in production as Glen mentioned.
   >    It seems like we could got overall controll over the space usage of the cluster with this new config item.
   >    And this should not be conflict with the datanode config 'du.reserved', since its use case is that we have multiple consumers for a single disk.
   
   I guess, we need to be more precise here. A container creation won't succeed on a datanode unless it has remaining space >=  container size as there is hard check there(check RoundRobinVolumeChoosingPolicy#chooseVolume()). Its better to to not choose such datanodes upfront during pipeline allocation in any case.
   
   The pipeline reserved space notion should consider ratis volumes size specifically as well as so as to ensure not allocate any new pipelines on nodes which are very low on ratis log disk space, and should have enough space on all constituent datanodes of the pipeline fo the existing pipelines to get closed as closing a pipeline takes a snapshot and does IO on the raft log disk as well.
   
   This patch itself looks good to me and can be committed and pipeline reserve semantic can be then built on top of this.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org