diff --git a/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLDelayDetector.java b/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLDelayDetector.java index 9a458e272..9faba18aa 100644 --- a/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLDelayDetector.java +++ b/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLDelayDetector.java @@ -45,7 +45,11 @@ private void delayCal(long delay, long delayThreshold) { long logic = dbGroup.getLogicTimestamp().get(); long result = logic - delay; if (result >= 0) { - long delayVal = result * (dbGroup.getDbGroupConfig().getDelayPeriodMillis() / 2); + long delayVal = 0; + if (result > 0) { + int delayPeriodMillis = dbGroup.getDbGroupConfig().getDelayPeriodMillis(); + delayVal = (result * delayPeriodMillis) + (delayPeriodMillis / 2); + } if (delayThreshold > 0 && delayVal > delayThreshold) { MySQLHeartbeat.LOGGER.warn("found MySQL master/slave Replication delay !!! " + heartbeat.getSource().getConfig() + ", binlog sync time delay: " + delayVal + "ms"); }