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