From 815001e65e11fa8fe3baa25692e799e8382dee80 Mon Sep 17 00:00:00 2001 From: baofengqi Date: Wed, 18 Jun 2025 14:02:50 +0800 Subject: [PATCH 1/3] [bug]fix slave delay calculation method --- .../actiontech/dble/backend/heartbeat/MySQLDelayDetector.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 9a458e2724..7e13e7875e 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,7 @@ 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 = result * dbGroup.getDbGroupConfig().getDelayPeriodMillis(); if (delayThreshold > 0 && delayVal > delayThreshold) { MySQLHeartbeat.LOGGER.warn("found MySQL master/slave Replication delay !!! " + heartbeat.getSource().getConfig() + ", binlog sync time delay: " + delayVal + "ms"); } From ba151a58c681c2c758328e62ef9376b7097455ac Mon Sep 17 00:00:00 2001 From: baofengqi Date: Wed, 18 Jun 2025 14:14:04 +0800 Subject: [PATCH 2/3] [bug]fix slave delay calculation method --- .../dble/backend/heartbeat/MySQLDelayDetector.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 7e13e7875e..90677a9005 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(); + int delayPeriodMillis = dbGroup.getDbGroupConfig().getDelayPeriodMillis(); + long delayVal = 0; + if (result > 0) { + 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"); } From 18a3566e3d0921dd66e42e01afa96cbebade2ea4 Mon Sep 17 00:00:00 2001 From: baofengqi Date: Wed, 18 Jun 2025 14:17:55 +0800 Subject: [PATCH 3/3] typo --- .../actiontech/dble/backend/heartbeat/MySQLDelayDetector.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 90677a9005..9faba18aa7 100644 --- a/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLDelayDetector.java +++ b/src/main/java/com/actiontech/dble/backend/heartbeat/MySQLDelayDetector.java @@ -45,9 +45,9 @@ private void delayCal(long delay, long delayThreshold) { long logic = dbGroup.getLogicTimestamp().get(); long result = logic - delay; if (result >= 0) { - int delayPeriodMillis = dbGroup.getDbGroupConfig().getDelayPeriodMillis(); long delayVal = 0; if (result > 0) { + int delayPeriodMillis = dbGroup.getDbGroupConfig().getDelayPeriodMillis(); delayVal = (result * delayPeriodMillis) + (delayPeriodMillis / 2); } if (delayThreshold > 0 && delayVal > delayThreshold) {