[
https://issues.apache.org/jira/browse/IGNITE-17637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Uttsel reassigned IGNITE-17637:
--------------------------------------
Assignee: Sergey Uttsel
> Implement a commit partition path write intent resolution logic for RO reads
> ----------------------------------------------------------------------------
>
> Key: IGNITE-17637
> URL: https://issues.apache.org/jira/browse/IGNITE-17637
> Project: Ignite
> Issue Type: Improvement
> Reporter: Sergey Uttsel
> Assignee: Sergey Uttsel
> Priority: Major
> Labels: ignite-3, transaction3_ro
>
> Need to perform writeIntent resolution by commit partition path if a
> coordinator path was not able to resolve the intent.
> # A write intent contains a commit partition id \{UUID tableId, int partId}.
> # Need to create a PlacementDriver which contains a map of assignments
> \{UUID tableId, int partId} -> Set<ClusterNode>
> # Assignments are updated in TableManager#updateAssignmentInternal.
> # PartitionReplicaListener contains placementDriver and replicaService.
> # PartitionReplicaListener read a write intent, get a commit partition id,
> get assignments and send TxStateReq to first ClusterNode by ReplicaService.
> ## On receiving a cluster node check that it is a leader, read the txn state
> from the persistent storage and send response with tx state. If txState not
> found, return NULL outcome in a TxStateResp.
> ## If the node isn't a leader, then it send response with leader and
> PartitionReplicaListener resend TxStateReq to the leader.
> ## If leader is unknown then PartitionReplicaListener send TxStateReq to
> another ClusterNode
> # If txState is found, validate a commit timestamp (only for committed
> state).
> # Retry commit partition path until a success or timeout.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)