[ 
https://issues.apache.org/jira/browse/HDFS-13872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16594399#comment-16594399
 ] 

Konstantin Shvachko commented on HDFS-13872:
--------------------------------------------

I agree that HAServiceProtocol and DatanodeProtocol do not need to wait for 
Observer to catch up. So mostly ClientProtocol methods should wait, but not all 
of them, like {{setSafeMode()}}, {{getDatanodeReport()}}, 
{{getDatanodeStorageReport()}} shouldn't wait as well.
I was thinking if we could add a parameter to {{@ReadOnly}} annotation to 
indicate that msync is required for this operation. On the client we can add 
{{AlignmentContext}} only to those operations, that require msync. Then on the 
server we can bypass waiting for catch up if {{AlignmentContext}} is not 
present, which we already do I believe.

> Only ClientProtocol should perform msync wait
> ---------------------------------------------
>
>                 Key: HDFS-13872
>                 URL: https://issues.apache.org/jira/browse/HDFS-13872
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Erik Krogen
>            Priority: Major
>
> Currently the implementation of msync added in HDFS-13767 waits until the 
> server has caught up to the client-specified transaction ID regardless of 
> what the inbound RPC is. This particularly causes problems for 
> ObserverReadProxyProvider (see HDFS-13779) when we try to fetch the state 
> from an observer/standby; this should be a quick operation, but it has to 
> wait for the node to catch up to the most current state. I initially thought 
> all {{HAServiceProtocol}} methods should thus be excluded from the wait 
> period, but actually I think the right approach is that _only_ 
> {{ClientProtocol}} methods should be subjected to the wait period. I propose 
> that we can do this via an annotation on client protocol which can then be 
> checked within {{ipc.Server}}.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to