diff --git a/src/main/java/org/tikv/common/ConfigUtils.java b/src/main/java/org/tikv/common/ConfigUtils.java index 4ba61008d76..a4963dc863f 100644 --- a/src/main/java/org/tikv/common/ConfigUtils.java +++ b/src/main/java/org/tikv/common/ConfigUtils.java @@ -23,6 +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_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"; @@ -69,6 +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_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 e509093a58e..e89f1b51fa2 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.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 4787b1c08b8..f1f02666c3e 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_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); @@ -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 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); @@ -371,6 +373,14 @@ public TiConfiguration setForwardTimeout(long timeout) { return this; } + public long getPdFirstGetMemberTimeout() { + return pdFirstGetMemberTimeout; + } + + public void setPdFirstGetMemberTimeout(long pdFirstGetMemberTimeout) { + this.pdFirstGetMemberTimeout = pdFirstGetMemberTimeout; + } + public long getScanTimeout() { return scanTimeout; }