[
https://issues.apache.org/jira/browse/HDDS-4560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Glen Geng updated HDDS-4560:
----------------------------
Description:
Add ReadWriteLock into PipelineStateMap to protect contentions between
RaftServer and PipelineManager.
If current leader SCM (as leader of term N) steps down while there are on-going
transactions, there might be read/write contentions that new leader SCM (as
leader of term N+1) has replicated some raft log entries encapsulating method
addPipeline()/removePipeline()/updatePipelineState() to the underlying
RaftServer that are being applied by StateMachineUpdater, and at the same time
PipelineManager is calling getPipelines().
was:
Add ReadWriteLock into PipelineStateMap to protect contentions between
RaftServer and PipelineManager.
If current leader SCM (as leader of term N) steps down while there are on-going
transactions, there might be read/write contentions that new leader SCM (as
leader of term N+1) has replicated some raft log entries encapsulating method
addPipeline/removePipeline/updatePipelineState to the underlying RaftServer
that are being applied by StateMachineUpdater, and at the same time
PipelineManager is calling getPipelines.
> Add ReadWriteLock into PipelineStateMap to protect contentions between
> RaftServer and PipelineManager
> -----------------------------------------------------------------------------------------------------
>
> Key: HDDS-4560
> URL: https://issues.apache.org/jira/browse/HDDS-4560
> Project: Hadoop Distributed Data Store
> Issue Type: Sub-task
> Components: SCM HA
> Affects Versions: 1.1.0
> Reporter: Glen Geng
> Assignee: Glen Geng
> Priority: Major
>
> Add ReadWriteLock into PipelineStateMap to protect contentions between
> RaftServer and PipelineManager.
> If current leader SCM (as leader of term N) steps down while there are
> on-going transactions, there might be read/write contentions that new leader
> SCM (as leader of term N+1) has replicated some raft log entries
> encapsulating method addPipeline()/removePipeline()/updatePipelineState() to
> the underlying RaftServer that are being applied by StateMachineUpdater, and
> at the same time PipelineManager is calling getPipelines().
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]