This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new a443a39e2c7 [enhance](blacklist) seperate blacklist conf from heartbeat (#28638) a443a39e2c7 is described below commit a443a39e2c7053cd422e44f14b7d236aeb601ac3 Author: Yongqiang YANG <98214048+dataroar...@users.noreply.github.com> AuthorDate: Thu Dec 21 00:17:45 2023 +0800 [enhance](blacklist) seperate blacklist conf from heartbeat (#28638) There is a circuit breaker lasting for 2 minutes in grpc, then if a be is down and up again, send fragments to the be fails lasting for 2 minutes. --- .../src/main/java/org/apache/doris/common/Config.java | 14 ++++++++++++++ fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java | 2 +- .../src/main/java/org/apache/doris/common/ClientPool.java | 2 +- .../src/main/java/org/apache/doris/common/FeConstants.java | 1 - .../src/main/java/org/apache/doris/qe/SimpleScheduler.java | 3 +-- .../main/java/org/apache/doris/system/HeartbeatMgr.java | 2 +- .../test/java/org/apache/doris/qe/SimpleSchedulerTest.java | 8 ++++---- 7 files changed, 22 insertions(+), 10 deletions(-) diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java index acb82ae7d1d..8c90f6a5162 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java +++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java @@ -1782,6 +1782,20 @@ public class Config extends ConfigBase { @ConfField(mutable = true, masterOnly = true) public static long max_backend_heartbeat_failure_tolerance_count = 1; + /** + * Heartbeat interval in seconds. + * Default is 10, which means every 10 seconds, the master will send a heartbeat to all backends. + */ + @ConfField(mutable = false, masterOnly = false) + public static int heartbeat_interval_second = 10; + + /** + * After a backend is marked as unavailable, it will be added to blacklist. + * Default is 120. + */ + @ConfField(mutable = true, masterOnly = false) + public static int blacklist_duration_second = 120; + @ConfField(mutable = true, masterOnly = false, description = { "禁止创建odbc, mysql, broker类型的外表", "Disallow the creation of odbc, mysql, broker type external tables"}) public static boolean enable_odbc_mysql_broker_table = false; diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java index 4e1f50be9aa..9ae7d4f1617 100755 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java @@ -2424,7 +2424,7 @@ public class Env { } public void createFeDiskUpdater() { - feDiskUpdater = new Daemon("feDiskUpdater", FeConstants.heartbeat_interval_second * 1000L) { + feDiskUpdater = new Daemon("feDiskUpdater", Config.heartbeat_interval_second * 1000L) { @Override protected void runOneCycle() { ExecuteEnv.getInstance().refreshAndGetDiskInfo(true); diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/ClientPool.java b/fe/fe-core/src/main/java/org/apache/doris/common/ClientPool.java index 7308a225402..bdfffbe4802 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/ClientPool.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/ClientPool.java @@ -27,7 +27,7 @@ import org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig; public class ClientPool { static GenericKeyedObjectPoolConfig heartbeatConfig = new GenericKeyedObjectPoolConfig(); - static int heartbeatTimeoutMs = FeConstants.heartbeat_interval_second * 1000; + static int heartbeatTimeoutMs = Config.heartbeat_interval_second * 1000; static GenericKeyedObjectPoolConfig backendConfig = new GenericKeyedObjectPoolConfig(); diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/FeConstants.java b/fe/fe-core/src/main/java/org/apache/doris/common/FeConstants.java index b9604009bed..a502d79e032 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/FeConstants.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/FeConstants.java @@ -34,7 +34,6 @@ public class FeConstants { public static int shortkey_max_column_count = 3; public static int shortkey_maxsize_bytes = 36; - public static int heartbeat_interval_second = 5; public static int checkpoint_interval_second = 60; // 1 minutes // dpp version diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SimpleScheduler.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SimpleScheduler.java index 4c22ff9d8c7..9898f15aa6e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/SimpleScheduler.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SimpleScheduler.java @@ -19,7 +19,6 @@ package org.apache.doris.qe; import org.apache.doris.catalog.Env; import org.apache.doris.common.Config; -import org.apache.doris.common.FeConstants; import org.apache.doris.common.Pair; import org.apache.doris.common.Reference; import org.apache.doris.common.UserException; @@ -176,7 +175,7 @@ public class SimpleScheduler { return; } - blacklistBackends.put(backendID, Pair.of(FeConstants.heartbeat_interval_second + 1, reason)); + blacklistBackends.put(backendID, Pair.of(Config.blacklist_duration_second + 1, reason)); LOG.warn("add backend {} to black list. reason: {}", backendID, reason); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/system/HeartbeatMgr.java b/fe/fe-core/src/main/java/org/apache/doris/system/HeartbeatMgr.java index 4281ba8f376..4282ad9aa31 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/system/HeartbeatMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/system/HeartbeatMgr.java @@ -78,7 +78,7 @@ public class HeartbeatMgr extends MasterDaemon { private static volatile AtomicReference<TMasterInfo> masterInfo = new AtomicReference<>(); public HeartbeatMgr(SystemInfoService nodeMgr, boolean needRegisterMetric) { - super("heartbeat mgr", FeConstants.heartbeat_interval_second * 1000); + super("heartbeat mgr", Config.heartbeat_interval_second * 1000); this.nodeMgr = nodeMgr; this.executor = ThreadPoolManager.newDaemonFixedThreadPool(Config.heartbeat_mgr_threads_num, Config.heartbeat_mgr_blocking_queue_size, "heartbeat-mgr-pool", needRegisterMetric); diff --git a/fe/fe-core/src/test/java/org/apache/doris/qe/SimpleSchedulerTest.java b/fe/fe-core/src/test/java/org/apache/doris/qe/SimpleSchedulerTest.java index 6ba2d271566..ac13900d2cf 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/qe/SimpleSchedulerTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/qe/SimpleSchedulerTest.java @@ -17,7 +17,7 @@ package org.apache.doris.qe; -import org.apache.doris.common.FeConstants; +import org.apache.doris.common.Config; import org.apache.doris.common.Reference; import org.apache.doris.common.UserException; import org.apache.doris.system.Backend; @@ -47,7 +47,7 @@ public class SimpleSchedulerTest { @BeforeClass public static void setUp() { SimpleScheduler.init(); - FeConstants.heartbeat_interval_second = 2; + Config.heartbeat_interval_second = 2; be1 = new Backend(1000L, "192.168.100.0", 9050); be2 = new Backend(1001L, "192.168.100.1", 9050); be3 = new Backend(1002L, "192.168.100.2", 9050); @@ -139,7 +139,7 @@ public class SimpleSchedulerTest { t3.join(); Assert.assertFalse(SimpleScheduler.isAvailable(be1)); - Thread.sleep((FeConstants.heartbeat_interval_second + 5) * 1000); + Thread.sleep((Config.heartbeat_interval_second + 5) * 1000); Assert.assertTrue(SimpleScheduler.isAvailable(be1)); } @@ -194,7 +194,7 @@ public class SimpleSchedulerTest { System.out.println(e.getMessage()); } - Thread.sleep((FeConstants.heartbeat_interval_second + 5) * 1000); + Thread.sleep((Config.heartbeat_interval_second + 5) * 1000); Assert.assertNotNull(SimpleScheduler.getHost(locations.get(0).backend_id, locations, backends, ref)); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org