[
https://issues.apache.org/jira/browse/HDDS-5327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17509813#comment-17509813
]
Stephen O'Donnell commented on HDDS-5327:
-----------------------------------------
The value of 5 for the minimum pipelines was never supposed to be the final
choice - we just put it there to get it working, and then raised this Jira to
come back to it.
At the time I wondered if we could track the rate of "open container requests"
to SCM to decide if we need to open more pipelines or not. Each call to
allocate a new block arrives in the WritableEcContainerProvider, so it would be
possible to track the rate of block requests here. If it is higher than some
function of the current pipeline count and rate, then we allocate more
pipelines up to some maximum. If the rate reduces again, we can allow the
pipelines to decay back to a smaller value.
With Ozone, its better that containers get closed relatively quickly, as we
don't replicate open containers. We also don't want to force containers closed
too often, or we can have small containers. We need to find a way to adjust
open containers for each EC replication based on load while considering these
other constraints too.
> EC: WritableEcContainerProvider should dynamically adjust the open container
> groups
> -----------------------------------------------------------------------------------
>
> Key: HDDS-5327
> URL: https://issues.apache.org/jira/browse/HDDS-5327
> Project: Apache Ozone
> Issue Type: Sub-task
> Components: SCM
> Reporter: Stephen O'Donnell
> Priority: Major
>
> After some discussion we concluded that for any given EC policy, a minimum
> number of pipelines should be allocated so writes can be directed to
> different containers.
> The absolute maximum number of pipelines can be calculated as some function
> of the cluster nodes and disks, but we are still unsure about how to
> calculate that limit.
> The number of pipelines should be able to grow from the minimum toward the
> maximum, depending on the write load on the cluster, or perhaps the age of
> the oldest open container (to prevent too many containers remaining open for
> too long).
> The goal is to allow a sufficient number of open containers so the writes are
> spread across different disks, without having to maintain too many open
> containers on the cluster.
> If the write load is very high, there should be more open containers than if
> the write load is very low.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]