From a5e60244ecacb3e1c394146d59f49739547ec867 Mon Sep 17 00:00:00 2001 From: marsishandsome Date: Mon, 23 Aug 2021 17:47:47 +0800 Subject: [PATCH 1/2] update pd get member timeout from 2s to 10s Signed-off-by: marsishandsome --- src/main/java/org/tikv/common/ConfigUtils.java | 2 ++ src/main/java/org/tikv/common/PDClient.java | 4 ++-- src/main/java/org/tikv/common/TiConfiguration.java | 10 ++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/tikv/common/ConfigUtils.java b/src/main/java/org/tikv/common/ConfigUtils.java index 4ba61008d76..c5e6859aaee 100644 --- a/src/main/java/org/tikv/common/ConfigUtils.java +++ b/src/main/java/org/tikv/common/ConfigUtils.java @@ -23,6 +23,7 @@ public class ConfigUtils { public static final String TIKV_GRPC_TIMEOUT = "tikv.grpc.timeout_in_ms"; public static final String TIKV_GRPC_INGEST_TIMEOUT = "tikv.grpc.ingest_timeout_in_ms"; public static final String TIKV_GRPC_FORWARD_TIMEOUT = "tikv.grpc.forward_timeout_in_ms"; + public static final String TIKV_PD_GET_MEMBER_TIMEOUT = "tikv.grpc.pd_get_member_timeout_in_ms"; public static final String TIKV_GRPC_SCAN_TIMEOUT = "tikv.grpc.scan_timeout_in_ms"; public static final String TIKV_GRPC_SCAN_BATCH_SIZE = "tikv.grpc.scan_batch_size"; public static final String TIKV_GRPC_MAX_FRAME_SIZE = "tikv.grpc.max_frame_size"; @@ -69,6 +70,7 @@ public class ConfigUtils { public static final String DEF_TIMEOUT = "200ms"; public static final String DEF_TIKV_GRPC_INGEST_TIMEOUT = "200s"; public static final String DEF_FORWARD_TIMEOUT = "300ms"; + public static final String DEF_TIKV_PD_GET_MEMBER_TIMEOUT = "10000ms"; public static final String DEF_SCAN_TIMEOUT = "20s"; public static final int DEF_CHECK_HEALTH_TIMEOUT = 100; public static final int DEF_HEALTH_CHECK_PERIOD_DURATION = 300; diff --git a/src/main/java/org/tikv/common/PDClient.java b/src/main/java/org/tikv/common/PDClient.java index e509093a58e..456f54689d2 100644 --- a/src/main/java/org/tikv/common/PDClient.java +++ b/src/main/java/org/tikv/common/PDClient.java @@ -337,7 +337,7 @@ private GetMembersResponse getMembers(URI uri) { } return resp; } catch (Exception e) { - logger.debug("failed to get member from pd server.", e); + logger.warn("failed to get member from pd server.", e); } return null; } @@ -575,7 +575,7 @@ private void initCluster() { .orElseGet(() -> new DefaultHostMapping(this.etcdClient, conf.getNetworkMappingName())); // The first request may cost too much latency long originTimeout = this.timeout; - this.timeout = 2000; + this.timeout = conf.getPdGetMemberTimeout(); for (URI u : pdAddrs) { resp = getMembers(u); if (resp != null) { diff --git a/src/main/java/org/tikv/common/TiConfiguration.java b/src/main/java/org/tikv/common/TiConfiguration.java index 4787b1c08b8..ac7a16103c9 100644 --- a/src/main/java/org/tikv/common/TiConfiguration.java +++ b/src/main/java/org/tikv/common/TiConfiguration.java @@ -56,6 +56,7 @@ private static void loadFromDefaultProperties() { setIfMissing(TIKV_GRPC_TIMEOUT, DEF_TIMEOUT); setIfMissing(TIKV_GRPC_INGEST_TIMEOUT, DEF_TIKV_GRPC_INGEST_TIMEOUT); setIfMissing(TIKV_GRPC_FORWARD_TIMEOUT, DEF_FORWARD_TIMEOUT); + setIfMissing(TIKV_PD_GET_MEMBER_TIMEOUT, DEF_TIKV_PD_GET_MEMBER_TIMEOUT); setIfMissing(TIKV_GRPC_SCAN_TIMEOUT, DEF_SCAN_TIMEOUT); setIfMissing(TIKV_GRPC_SCAN_BATCH_SIZE, DEF_SCAN_BATCH_SIZE); setIfMissing(TIKV_GRPC_MAX_FRAME_SIZE, DEF_MAX_FRAME_SIZE); @@ -246,6 +247,7 @@ private static ReplicaRead getReplicaRead(String key) { private long timeout = getTimeAsMs(TIKV_GRPC_TIMEOUT); private long ingestTimeout = getTimeAsMs(TIKV_GRPC_INGEST_TIMEOUT); private long forwardTimeout = getTimeAsMs(TIKV_GRPC_FORWARD_TIMEOUT); + private long pdGetMemberTimeout = getTimeAsMs(TIKV_PD_GET_MEMBER_TIMEOUT); private long scanTimeout = getTimeAsMs(TIKV_GRPC_SCAN_TIMEOUT); private int maxFrameSize = getInt(TIKV_GRPC_MAX_FRAME_SIZE); private List pdAddrs = getPdAddrs(TIKV_PD_ADDRESSES); @@ -371,6 +373,14 @@ public TiConfiguration setForwardTimeout(long timeout) { return this; } + public long getPdGetMemberTimeout() { + return pdGetMemberTimeout; + } + + public void setPdGetMemberTimeout(long pdGetMemberTimeout) { + this.pdGetMemberTimeout = pdGetMemberTimeout; + } + public long getScanTimeout() { return scanTimeout; } From ff3e3f97e1df878f22e227b9d2b1854f52b503d7 Mon Sep 17 00:00:00 2001 From: marsishandsome Date: Mon, 23 Aug 2021 17:59:10 +0800 Subject: [PATCH 2/2] address code review Signed-off-by: marsishandsome --- src/main/java/org/tikv/common/ConfigUtils.java | 5 +++-- src/main/java/org/tikv/common/PDClient.java | 2 +- src/main/java/org/tikv/common/TiConfiguration.java | 12 ++++++------ 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/tikv/common/ConfigUtils.java b/src/main/java/org/tikv/common/ConfigUtils.java index c5e6859aaee..a4963dc863f 100644 --- a/src/main/java/org/tikv/common/ConfigUtils.java +++ b/src/main/java/org/tikv/common/ConfigUtils.java @@ -23,7 +23,8 @@ public class ConfigUtils { public static final String TIKV_GRPC_TIMEOUT = "tikv.grpc.timeout_in_ms"; public static final String TIKV_GRPC_INGEST_TIMEOUT = "tikv.grpc.ingest_timeout_in_ms"; public static final String TIKV_GRPC_FORWARD_TIMEOUT = "tikv.grpc.forward_timeout_in_ms"; - public static final String TIKV_PD_GET_MEMBER_TIMEOUT = "tikv.grpc.pd_get_member_timeout_in_ms"; + public static final String TIKV_PD_FIRST_GET_MEMBER_TIMEOUT = + "tikv.grpc.pd_first_get_member_timeout_in_ms"; public static final String TIKV_GRPC_SCAN_TIMEOUT = "tikv.grpc.scan_timeout_in_ms"; public static final String TIKV_GRPC_SCAN_BATCH_SIZE = "tikv.grpc.scan_batch_size"; public static final String TIKV_GRPC_MAX_FRAME_SIZE = "tikv.grpc.max_frame_size"; @@ -70,7 +71,7 @@ public class ConfigUtils { public static final String DEF_TIMEOUT = "200ms"; public static final String DEF_TIKV_GRPC_INGEST_TIMEOUT = "200s"; public static final String DEF_FORWARD_TIMEOUT = "300ms"; - public static final String DEF_TIKV_PD_GET_MEMBER_TIMEOUT = "10000ms"; + public static final String DEF_TIKV_PD_FIRST_GET_MEMBER_TIMEOUT = "10000ms"; public static final String DEF_SCAN_TIMEOUT = "20s"; public static final int DEF_CHECK_HEALTH_TIMEOUT = 100; public static final int DEF_HEALTH_CHECK_PERIOD_DURATION = 300; diff --git a/src/main/java/org/tikv/common/PDClient.java b/src/main/java/org/tikv/common/PDClient.java index 456f54689d2..e89f1b51fa2 100644 --- a/src/main/java/org/tikv/common/PDClient.java +++ b/src/main/java/org/tikv/common/PDClient.java @@ -575,7 +575,7 @@ private void initCluster() { .orElseGet(() -> new DefaultHostMapping(this.etcdClient, conf.getNetworkMappingName())); // The first request may cost too much latency long originTimeout = this.timeout; - this.timeout = conf.getPdGetMemberTimeout(); + this.timeout = conf.getPdFirstGetMemberTimeout(); for (URI u : pdAddrs) { resp = getMembers(u); if (resp != null) { diff --git a/src/main/java/org/tikv/common/TiConfiguration.java b/src/main/java/org/tikv/common/TiConfiguration.java index ac7a16103c9..f1f02666c3e 100644 --- a/src/main/java/org/tikv/common/TiConfiguration.java +++ b/src/main/java/org/tikv/common/TiConfiguration.java @@ -56,7 +56,7 @@ private static void loadFromDefaultProperties() { setIfMissing(TIKV_GRPC_TIMEOUT, DEF_TIMEOUT); setIfMissing(TIKV_GRPC_INGEST_TIMEOUT, DEF_TIKV_GRPC_INGEST_TIMEOUT); setIfMissing(TIKV_GRPC_FORWARD_TIMEOUT, DEF_FORWARD_TIMEOUT); - setIfMissing(TIKV_PD_GET_MEMBER_TIMEOUT, DEF_TIKV_PD_GET_MEMBER_TIMEOUT); + setIfMissing(TIKV_PD_FIRST_GET_MEMBER_TIMEOUT, DEF_TIKV_PD_FIRST_GET_MEMBER_TIMEOUT); setIfMissing(TIKV_GRPC_SCAN_TIMEOUT, DEF_SCAN_TIMEOUT); setIfMissing(TIKV_GRPC_SCAN_BATCH_SIZE, DEF_SCAN_BATCH_SIZE); setIfMissing(TIKV_GRPC_MAX_FRAME_SIZE, DEF_MAX_FRAME_SIZE); @@ -247,7 +247,7 @@ private static ReplicaRead getReplicaRead(String key) { private long timeout = getTimeAsMs(TIKV_GRPC_TIMEOUT); private long ingestTimeout = getTimeAsMs(TIKV_GRPC_INGEST_TIMEOUT); private long forwardTimeout = getTimeAsMs(TIKV_GRPC_FORWARD_TIMEOUT); - private long pdGetMemberTimeout = getTimeAsMs(TIKV_PD_GET_MEMBER_TIMEOUT); + private long pdFirstGetMemberTimeout = getTimeAsMs(TIKV_PD_FIRST_GET_MEMBER_TIMEOUT); private long scanTimeout = getTimeAsMs(TIKV_GRPC_SCAN_TIMEOUT); private int maxFrameSize = getInt(TIKV_GRPC_MAX_FRAME_SIZE); private List pdAddrs = getPdAddrs(TIKV_PD_ADDRESSES); @@ -373,12 +373,12 @@ public TiConfiguration setForwardTimeout(long timeout) { return this; } - public long getPdGetMemberTimeout() { - return pdGetMemberTimeout; + public long getPdFirstGetMemberTimeout() { + return pdFirstGetMemberTimeout; } - public void setPdGetMemberTimeout(long pdGetMemberTimeout) { - this.pdGetMemberTimeout = pdGetMemberTimeout; + public void setPdFirstGetMemberTimeout(long pdFirstGetMemberTimeout) { + this.pdFirstGetMemberTimeout = pdFirstGetMemberTimeout; } public long getScanTimeout() {