Ivan Andika created HDDS-14379:
----------------------------------

             Summary: Implement basic 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
            Reporter: Ivan Andika
            Assignee: Ivan Andika


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