HDFS-13735. Make QJM HTTP URL connection timeout configurable. Contributed by Chao Sun.
This commit is contained in:
parent
d352f167eb
commit
5326a7906d
@ -27,6 +27,7 @@
|
||||
import org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyRackFaultTolerant;
|
||||
import org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.RamDiskReplicaLruTracker;
|
||||
import org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.ReservedSpaceCalculator;
|
||||
import org.apache.hadoop.hdfs.web.URLConnectionFactory;
|
||||
import org.apache.hadoop.http.HttpConfig;
|
||||
|
||||
/**
|
||||
@ -1033,6 +1034,8 @@ public class DFSConfigKeys extends CommonConfigurationKeys {
|
||||
public static final String DFS_QJOURNAL_GET_JOURNAL_STATE_TIMEOUT_KEY = "dfs.qjournal.get-journal-state.timeout.ms";
|
||||
public static final String DFS_QJOURNAL_NEW_EPOCH_TIMEOUT_KEY = "dfs.qjournal.new-epoch.timeout.ms";
|
||||
public static final String DFS_QJOURNAL_WRITE_TXNS_TIMEOUT_KEY = "dfs.qjournal.write-txns.timeout.ms";
|
||||
public static final String DFS_QJOURNAL_HTTP_OPEN_TIMEOUT_KEY = "dfs.qjournal.http.open.timeout.ms";
|
||||
public static final String DFS_QJOURNAL_HTTP_READ_TIMEOUT_KEY = "dfs.qjournal.http.read.timeout.ms";
|
||||
public static final int DFS_QJOURNAL_START_SEGMENT_TIMEOUT_DEFAULT = 20000;
|
||||
public static final int DFS_QJOURNAL_PREPARE_RECOVERY_TIMEOUT_DEFAULT = 120000;
|
||||
public static final int DFS_QJOURNAL_ACCEPT_RECOVERY_TIMEOUT_DEFAULT = 120000;
|
||||
@ -1041,6 +1044,8 @@ public class DFSConfigKeys extends CommonConfigurationKeys {
|
||||
public static final int DFS_QJOURNAL_GET_JOURNAL_STATE_TIMEOUT_DEFAULT = 120000;
|
||||
public static final int DFS_QJOURNAL_NEW_EPOCH_TIMEOUT_DEFAULT = 120000;
|
||||
public static final int DFS_QJOURNAL_WRITE_TXNS_TIMEOUT_DEFAULT = 20000;
|
||||
public static final int DFS_QJOURNAL_HTTP_OPEN_TIMEOUT_DEFAULT = URLConnectionFactory.DEFAULT_SOCKET_TIMEOUT;
|
||||
public static final int DFS_QJOURNAL_HTTP_READ_TIMEOUT_DEFAULT = URLConnectionFactory.DEFAULT_SOCKET_TIMEOUT;
|
||||
|
||||
public static final String DFS_MAX_NUM_BLOCKS_TO_LOG_KEY = "dfs.namenode.max-num-blocks-to-log";
|
||||
public static final long DFS_MAX_NUM_BLOCKS_TO_LOG_DEFAULT = 1000l;
|
||||
|
@ -124,8 +124,6 @@ public QuorumJournalManager(Configuration conf,
|
||||
this.nsInfo = nsInfo;
|
||||
this.nameServiceId = nameServiceId;
|
||||
this.loggers = new AsyncLoggerSet(createLoggers(loggerFactory));
|
||||
this.connectionFactory = URLConnectionFactory
|
||||
.newDefaultURLConnectionFactory(conf);
|
||||
|
||||
// Configure timeouts.
|
||||
this.startSegmentTimeoutMs = conf.getInt(
|
||||
@ -156,6 +154,15 @@ public QuorumJournalManager(Configuration conf,
|
||||
.DFS_QJM_OPERATIONS_TIMEOUT,
|
||||
DFSConfigKeys.DFS_QJM_OPERATIONS_TIMEOUT_DEFAULT, TimeUnit
|
||||
.MILLISECONDS);
|
||||
|
||||
int connectTimeoutMs = conf.getInt(
|
||||
DFSConfigKeys.DFS_QJOURNAL_HTTP_OPEN_TIMEOUT_KEY,
|
||||
DFSConfigKeys.DFS_QJOURNAL_HTTP_OPEN_TIMEOUT_DEFAULT);
|
||||
int readTimeoutMs = conf.getInt(
|
||||
DFSConfigKeys.DFS_QJOURNAL_HTTP_READ_TIMEOUT_KEY,
|
||||
DFSConfigKeys.DFS_QJOURNAL_HTTP_READ_TIMEOUT_DEFAULT);
|
||||
this.connectionFactory = URLConnectionFactory
|
||||
.newDefaultURLConnectionFactory(connectTimeoutMs, readTimeoutMs, conf);
|
||||
}
|
||||
|
||||
protected List<AsyncLogger> createLoggers(
|
||||
|
@ -4582,6 +4582,24 @@
|
||||
</description>
|
||||
</property>
|
||||
|
||||
<property>
|
||||
<name>dfs.qjournal.http.open.timeout.ms</name>
|
||||
<value>60000</value>
|
||||
<description>
|
||||
Timeout in milliseconds when open a new HTTP connection to remote
|
||||
journals.
|
||||
</description>
|
||||
</property>
|
||||
|
||||
<property>
|
||||
<name>dfs.qjournal.http.read.timeout.ms</name>
|
||||
<value>60000</value>
|
||||
<description>
|
||||
Timeout in milliseconds when reading from a HTTP connection from remote
|
||||
journals.
|
||||
</description>
|
||||
</property>
|
||||
|
||||
<property>
|
||||
<name>dfs.quota.by.storage.type.enabled</name>
|
||||
<value>true</value>
|
||||
|
Loading…
Reference in New Issue
Block a user