Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
None
-
None
-
None
-
Adds new configuration hbase.client.failure.map.cleanup.interval which defaults to ten minutes.
Description
PreemptiveFastFailInterceptor do not set fastFailClearingTimeMilliSec, so in
occasionallyCleanupFailureInformation function this branch
else if (now > entry.getValue().timeOfFirstFailureMilliSec + this.fastFailClearingTimeMilliSec) {
will be always be true,then the repeatedFailuresMap will be clean.
and in the constructor function
public PreemptiveFastFailInterceptor(Configuration conf) { this.fastFailThresholdMilliSec = conf.getLong( HConstants.HBASE_CLIENT_FAST_FAIL_THREASHOLD_MS, HConstants.HBASE_CLIENT_FAST_FAIL_THREASHOLD_MS_DEFAULT); this.failureMapCleanupIntervalMilliSec = conf.getLong( // this constant seem to set fastFailClearingTimeMilliSec, it may be a mistake. HConstants.HBASE_CLIENT_FAST_FAIL_CLEANUP_MS_DURATION_MS, HConstants.HBASE_CLIENT_FAST_FAIL_CLEANUP_DURATION_MS_DEFAULT); lastFailureMapCleanupTimeMilliSec = EnvironmentEdgeManager.currentTime(); }