gyz-web commented on code in PR #7602:
URL: https://github.com/apache/hadoop/pull/7602#discussion_r2046319572


##########
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/GlobalStateIdContext.java:
##########
@@ -156,9 +158,18 @@ public long receiveRequestState(RpcRequestHeaderProto 
header,
         ESTIMATED_TRANSACTIONS_PER_SECOND
             * TimeUnit.MILLISECONDS.toSeconds(clientWaitTime)
             * ESTIMATED_SERVER_TIME_MULTIPLIER) {
-      throw new RetriableException(
-          "Observer Node is too far behind: serverStateId = "
-              + serverStateId + " clientStateId = " + clientStateId);
+      if (namesystem.isRetryActive()) {

Review Comment:
     I think it is meaningless to retry in the context of the observer stateId 
is too far behind the client stateid, because it may take a long time for the 
observer to catch up with the active edit log, which is very bad for the 
business perception.
   
     In addition, I think this configuration addition is necessary. The default 
is to follow the original retry logic. Only when the business has such a 
demand, or it is considered that retry is not necessary, the parameter is 
turned on and transferred to the active namenode. It is not easy to reuse 
parameters, because there will be a parameter with two meanings, resulting in 
coupling and non-independence.
   
     In addition, is it possible to change it directly to 
ObserverRetryOnActiveException?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to