[
https://issues.apache.org/jira/browse/HDDS-7265?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17636094#comment-17636094
]
Neil Joshi commented on HDDS-7265:
----------------------------------
[~sodonnell] , [~szetszwo] I've put together a pipeline provider RackScatter
pipeline placement implementation that reuses the
SCMContainerPlacementRackScatter policy.
see branch: _https://github.com/neils-dev/ozone/tree/sp_
{code:java}
https://github.com/apache/ozone/compare/master...neils-dev:ozone:sp{code}
In doing so, the RatisPipelineProvider instantiates a pipeline policy based on
the configuration property ozone.scm.container.placement.impl and uses the
container rackScatter policy if configured. Code was tested with unit tests
and with ozone dev topology cluster without issue.
A couple of items to note when combining the scm container policies with the
pipeline policies, there are no metrics used for the pipeline policies (using
null metrics object when using with the pipeline provider). Also, the scm
container policies do not check for the pipeline engagement. In this
implementation, the pipeline provider filters pipeline engagement. In doing
so, we need to watch for not sorting pipelines based on heavy use (engagement)
when selecting nodes.
Please look over the code and comment. I can proceed to file the PR with the
code.
> ScatterRackPolicy for Ratis container placement behaves like RackAware policy
> -----------------------------------------------------------------------------
>
> Key: HDDS-7265
> URL: https://issues.apache.org/jira/browse/HDDS-7265
> Project: Apache Ozone
> Issue Type: Bug
> Reporter: Neil Joshi
> Assignee: Neil Joshi
> Priority: Major
>
> We expected container placement for ratis containers under the
> SCMContainerPlacementRackScatter to behave as documented for EC. Instead, we
> find when we configure ozone to use the SCMContainerPlacementRackScatter for
> ratis container placement, the placement behaves like the
> SCMContainerPlacementRackAware.
> That is, for a cluster with 3 racks and Datanodes on each of the racks, with
> a RATIS 3 configuration, to have pipelines and containers placed on each of
> the 3 racks. Instead we find that pipelines and containers are placed like
> SCMContainerPlacementRackAware with 2 on one rack and 1 on another rack.
>
> Design for providing a ScatterRack pipelinePlacementPolicy for the pipeline
> provider on open containers, RatisPipelineProvider.
> Proposed in this design document is to provide an additional
> PipelinePlacementPolicy that prioritizes container fault tolerance ensuring
> whenever possible each pipeline is on a separate rack. see
> https://docs.google.com/document/d/1npEseOoRzaNJIwFq7di4tWhb5o8LpUFYifU30kopd8g/edit?usp=sharing
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]