[ 
https://issues.apache.org/jira/browse/HDDS-14426?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Andika updated HDDS-14426:
-------------------------------
    Description: 
Currently in OMRatisHelper#getOMResponseFromRaftClientReply, the 
OMResponse.leaderOMNodeId is set to the replierId (i.e. 
RaftClientReply.serverId) which is set to the Raft peer that is serving the 
request.

Previously, it was fine since all Ratis request all write requests that need to 
be served by the leader. However, now that Ozone support OM follower read, OM 
cannot use replierId as the OMResponse.leaderOMNodeId.

Hadoop27OmTransport and Hadoop3OmTransport submitRequest will set the next OM 
node ID to this OM node ID. If the request is incorrectly set to a non-leader 
OM, this might cause the subsequent failover to wrongly goes to a follower, 
which might add to the write latency.

 

Additionally, we need to revisit whether we should just remove the usage of 
OMResponse.leaderOMNodeId since it we already implement suggested leader 
mechanism in HDDS-6743.

  was:
Currently in OMRatisHelper#getOMResponseFromRaftClientReply, the 
OMResponse.leaderOMNodeId is set to the replierId (i.e. 
RaftClientReply.serverId) which is set to the Raft peer that is serving the 
request.

Previously, it was fine since all Ratis request all write requests that need to 
be served by the leader. However, now that Ozone support OM follower read, OM 
cannot use replierId as the OMResponse.leaderOMNodeId.

Hadoop27OmTransport and Hadoop3OmTransport submitRequest will failover to the 
this new OM node ID. If the request is incorrectly set to a non-leader OM, this 
might cause the subsequent request to wrongly be sent to the follower, which 
might add to the write latency.

Additionally, we need to revisit whether we should just remove the usage of 
OMResponse.leaderOMNodeId since it we already implement suggested leader 
mechanism in HDDS-6743.


> OMResponse.leaderOMNodeId should not use RaftClientMessage.serverId
> -------------------------------------------------------------------
>
>                 Key: HDDS-14426
>                 URL: https://issues.apache.org/jira/browse/HDDS-14426
>             Project: Apache Ozone
>          Issue Type: Sub-task
>            Reporter: Ivan Andika
>            Assignee: Ivan Andika
>            Priority: Major
>              Labels: pull-request-available
>
> Currently in OMRatisHelper#getOMResponseFromRaftClientReply, the 
> OMResponse.leaderOMNodeId is set to the replierId (i.e. 
> RaftClientReply.serverId) which is set to the Raft peer that is serving the 
> request.
> Previously, it was fine since all Ratis request all write requests that need 
> to be served by the leader. However, now that Ozone support OM follower read, 
> OM cannot use replierId as the OMResponse.leaderOMNodeId.
> Hadoop27OmTransport and Hadoop3OmTransport submitRequest will set the next OM 
> node ID to this OM node ID. If the request is incorrectly set to a non-leader 
> OM, this might cause the subsequent failover to wrongly goes to a follower, 
> which might add to the write latency.
>  
> Additionally, we need to revisit whether we should just remove the usage of 
> OMResponse.leaderOMNodeId since it we already implement suggested leader 
> mechanism in HDDS-6743.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to