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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]