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

Ivan Andika updated HDDS-14379:
-------------------------------
    Component/s: OM HA
                 Ozone Client

> Implement basic Hadoop OM client proxy provider to read from followers
> ----------------------------------------------------------------------
>
>                 Key: HDDS-14379
>                 URL: https://issues.apache.org/jira/browse/HDDS-14379
>             Project: Apache Ozone
>          Issue Type: New Feature
>          Components: OM HA, Ozone Client
>            Reporter: Ivan Andika
>            Assignee: Ivan Andika
>            Priority: Major
>
> This task is to come up with the basic implementation of follower read client 
> proxy as a baseline before further performance improvements. The idea is to 
> simply pick a OM node in random (which be leader or follower / listener) and 
> use it to submit read requests. If the chosen OM node is a follower, the read 
> requests need to keep sending to that OM node unless the OM is down which 
> triggers failover. Write requests should be sent to the OM leader directly.
> Further improvements such as adding OM probe logic will be implemented in 
> follow up tasks.
> The implementation is to introduce HadoopRpcOMFollowerReadProxyProvider which 
> wraps
> HadoopRpcOMFailoverProxyProvider. FollowerReadProxyProvider tracks a 
> different currentOmNodeId from HadoopRpcOMFailoverProxyProvider. 
> FollowerReadInvocationHandler will check whether the request is a read 
> request (using OmUtils#isReadOnly) and if so forwards it to its current 
> proxy. If it's a write request, the request if forwarded to 
> HadoopRpcOMFailoverProxyProvider to be sent to the leader.
> So the proxy hierarchy is
>  * RetryProxy
>  ** HadoopRpcOMFollowerReadProxyProvider
>  *** HadoopRpcOMFailoverProxyProvider
>  



--
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