[
https://issues.apache.org/jira/browse/HDDS-17568?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tsz-wo Sze updated HDDS-17568:
------------------------------
Description:
Similar to RatisPipelineProvider, we need a ChainedPipelineProvider for V3
pipelines.
Claude:
CHAINED pipeline provider: a new ChainedPipelineProvider is needed.
- Why. PipelineFactory maps each ReplicationType to one PipelineProvider.
Today it registers STAND_ALONE,
RATIS and EC only, so createPipeline(CHAINED/THREE) has no provider.
RatisPipelineProvider cannot be reused
as-is: it extends PipelineProvider<RatisReplicationConfig> and hardcodes
RatisReplicationConfig.getInstance(factor)
in newPipelineBuilder, so the pipelines it creates would be RATIS.
- What it reuses. A CHAINED pipeline is created like a RATIS/THREE pipeline:
- datanode choice through PipelinePlacementPolicy;
- a leader from LeaderChoosePolicy;
- CreatePipelineCommand(pipelineID, CHAINED, THREE, dns, leader) sent to
each datanode;
- ClosePipelineCommand on close.
was:Similar to RatisPipelineProvider, we need a ChainedPipelineProvider for
V3 pipelines.
> Add ChainedPipelineProvider for V3 pipelines
> --------------------------------------------
>
> Key: HDDS-17568
> URL: https://issues.apache.org/jira/browse/HDDS-17568
> Project: Apache Ozone
> Issue Type: Sub-task
> Components: SCM
> Reporter: Tsz-wo Sze
> Assignee: Rui Wang
> Priority: Major
>
> Similar to RatisPipelineProvider, we need a ChainedPipelineProvider for V3
> pipelines.
> Claude:
> CHAINED pipeline provider: a new ChainedPipelineProvider is needed.
> - Why. PipelineFactory maps each ReplicationType to one PipelineProvider.
> Today it registers STAND_ALONE,
> RATIS and EC only, so createPipeline(CHAINED/THREE) has no provider.
> RatisPipelineProvider cannot be reused
> as-is: it extends PipelineProvider<RatisReplicationConfig> and hardcodes
> RatisReplicationConfig.getInstance(factor)
> in newPipelineBuilder, so the pipelines it creates would be RATIS.
> - What it reuses. A CHAINED pipeline is created like a RATIS/THREE pipeline:
> - datanode choice through PipelinePlacementPolicy;
> - a leader from LeaderChoosePolicy;
> - CreatePipelineCommand(pipelineID, CHAINED, THREE, dns, leader) sent to
> each datanode;
> - ClosePipelineCommand on close.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]