Hitachi

In-Memory Data Grid Hitachi Elastic Application Data Store


9.3.3 Timeout-related parameters

The following table lists the parameters related to timeouts.

Table 9‒4: Timeout-related parameters

No.

Property file

Parameter name

Value to be specified

Default value

1

Server property file

eads.server.connection.timeout

100 to 3600000

(milliseconds)

60000

2

eads.admin.operation.connection.timeout

100 to 3600000

(milliseconds)

10000

3

eads.failureDetector.heartbeat.interval

10 to 60000

(milliseconds)

400

4

eads.failureDetector.heartbeat.timeout

10 to 86400000

(milliseconds)

2000

5

eads.failureDetector.connection.timeout

1 to 60000

(milliseconds)

500

6

eads.failureDetector.read.timeout

1 to 60000

(milliseconds)

500

7

eads.failureDetector.retry

0 to 100

0

8

eads.failureDetector.assertive.threshold

1 to 49

1

9

eads.admin.boot.timeout

1 to 86400

(seconds)

60

10

eads.server.connection.keepAlive.timeout

0 to 3600 (seconds)

3600

11

eads.admin.operation.isolate.gracefulstop.waitTime

0 to 60000

(milliseconds)

3000

12

eads.replication.consensus.timeout

10 to 3600000

(milliseconds)

800

13

eads.transfer.timeout

100 to 3600000

(milliseconds)

60000

14

eads.transfer.interval

0 to 60000

(milliseconds)

1000

15

eads.replication.fillgap.copy.timeout

100 to 3600000

(milliseconds)

2000

16

eads.admin.operation.resume.send.interval

0 to 2147483647

(milliseconds)

0

17

Command property file

eads.command.connection.timeout

0 to 2147483647

(milliseconds)

3000

18

eads.command.common.read.timeout

0 to 2147483647

(milliseconds)

60000

19

eads.command.common.execution.timeout

0 to 2147483647

(seconds)

600

20

eads.command.subcommand-name.read.timeout

0 to 2147483647

(milliseconds)

600000

21

eads.command.subcommand-name.execution.timeout

0 to 2147483647

(seconds)

600

22

Client property file

eads.client.connection.send.timeout

100 to 3600000

(milliseconds)

60000

23

eads.client.connection.receive.timeout

100 to 3600000

(milliseconds)

60000

24

eads.client.clusterInfo.update.interval

10 to 60000

(milliseconds)

1000

Organization of this subsection

(1) Server property file

(a) eads.server.connection.timeout

This parameter specifies a timeout value (in milliseconds) for cluster information update checks and data transfer processing.

(b) eads.admin.operation.connection.timeout

This parameter specifies a timeout value (in milliseconds) for connection establishment and data transfer between EADS servers during execution of the following commands:

(c) eads.failureDetector.heartbeat.interval

This parameter specifies a heartbeat transmission interval (in milliseconds).

As this parameter's value becomes greater, adverse effects on the restoration and scale-out processing increase and timeouts occur more frequently during cluster startup.

As this parameter's value decreases, the communication workload for processing increases.

Specify for this parameter a value that is smaller than the following parameter values:

(d) eads.failureDetector.heartbeat.timeout

This parameter specifies a heartbeat timeout value (in milliseconds).

As this parameter's value becomes greater, the time required for detecting failures increases. On the other hand, if this parameter value is too small, failures might be detected erroneously.

As this parameter's value becomes greater, the sizes of the Java heap (eads.java.heapsize parameter value in the shared properties) and explicit heap (eads.java.external.heapsize parameter value in the shared properties) required for managing and storing the history of update operations become larger.

To perform consensus processing without isolating EADS servers in the event of a temporary failure, specify in this parameter a value that is greater than the value of the eads.replication.consensus.timeout parameter in the server properties. If this parameter's value is smaller than the value of the eads.replication.consensus.timeout parameter in the server properties, a timeout might occur during isolation processing, resulting in extra time being required to complete the processing.

(e) eads.failureDetector.connection.timeout

This parameter specifies a connection timeout value (in milliseconds) for the check for live servers.

As this parameter's value becomes greater, the time required for detecting failures becomes longer when a connection cannot be established. On the other hand, if this parameter's value is too small, a timeout might occur before the connection is established successfully.

We recommend that you specify for this parameter a value that is close to the value set in the eads.replication.consensus.timeout parameter in the server properties.

(f) eads.failureDetector.read.timeout

This parameter specifies a reception timeout value (in milliseconds) for the check for live servers.

As this parameter's value becomes greater, the time required for detecting failures becomes longer. On the other hand, if this parameter's value is too small, failures might be detected erroneously.

We recommend that you specify for this parameter a value that is close to the value set in the eads.replication.consensus.timeout parameter in the server properties.

(g) eads.failureDetector.retry

This parameter specifies the number of retries if a check for live servers times out.

(h) eads.failureDetector.assertive.threshold

This parameter specifies the number of EADS servers that must agree before an EADS server can be shut down.

Specify a value less than or equal to the value that is obtained by rounding up (number of EADS servers constituting the cluster + 1) [Figure] 2. For example, if a cluster consists of five EADS servers, specify 3 or a smaller value in this parameter.

If you specify a large value in this parameter, it might become impossible to isolate an EADS server that has been shut down. On the other hand, in the event of a temporary network failure (such as split-brain), the EADS server can be protected from being isolated prematurely.

(i) eads.admin.boot.timeout

This parameter specifies the maximum wait time (in seconds) until all EADS servers making up the cluster start up.

(j) eads.server.connection.keepAlive.timeout

This parameter specifies the length of time (in seconds) before the connection between the EADS client and EADS servers is released.

If request wait status (in which no communication takes place) lasts for the specified length of time or more, the connection is released.

If zero is specified, no timeout occurs (there is no limit).

(k) eads.admin.operation.isolate.gracefulstop.waitTime

This parameter specifies the time (in milliseconds) allowed for completion of isolation processing since the cluster information update operation was completed on the EADS server on which the eztool isolate command is executed.

When the EADS server that received an update confirmation of cluster information from the EADS client is isolated, if the connection is closed before the update of the cluster information on the EADS client is complete, a communication error occurs. By adjusting the value of this parameter, you can isolate the EADS server after updating of the cluster information on the EADS client has finished.

(l) eads.replication.consensus.timeout

This parameter specifies a timeout value (in milliseconds) for consensus processing.

If the consensus processing does not finish within the specified time, a timeout occurs, and then the consensus processing is performed again.

(m) eads.transfer.timeout

This parameter specifies a data transmission timeout value (in milliseconds) during restoration processing and scale-out processing.

Specify a value that is appropriate to the size of the data to be handled.

Specify this parameter to protect against the following events:

  • If an EADS server that transfers data shuts down during restoration processing or scale-out processing, the EADS server subject to restoration or the EADS server that was added during scale-out processing is placed in wait status.

  • If an EADS server subject to restoration or an EADS server that was added during scale-out processing hangs without releasing the connection, the EADS server that transfers data during restoration processing or scale-out processing is placed in wait status.

(n) eads.transfer.interval

This parameter specifies a data transmission interval (in milliseconds) during restoration processing and scale-out processing.

The value specified in this parameter is applied during restoration processing or scale-out processing to the EADS server subject to restoration or the EADS server that was added during scale-out processing.

Specify this parameter's value and the value of the eads.transfer.datasize parameter in the server properties in such a manner that the following condition is satisfied:

Bandwidth available for data transmission during restoration processing and scale-out processing (bps) [Figure]

(size of data transmitted during restoration processing and scale-out processing (bytes) [Figure] 8)

[Figure] {(data transmission interval for restoration processing and scale-out processing (milliseconds)

+ time required for data transmission (milliseconds)) [Figure] 1,000}

Size of data transmitted during restoration processing and scale-out processing (bytes):

eads.transfer.datasize parameter value in the server properties

Data transmission interval for restoration processing and scale-out processing (milliseconds):

eads.transfer.interval parameter value in the server properties

Time required for data transmission (milliseconds):

Time required for transmitting the amount of data specified in the eads.transfer.datasize server property parameter (milliseconds)

This is the time required for Restoration processing (data transmission) in the figure in 9.3.2(5) Cluster recovery processing (for scale-out processing, replace recovery processing with scale-out processing). This time value depends on the environment.

As the time required for restoration processing or scale-out processing becomes shorter, the communication workload for restoration processing increases. If the communication workload becomes large, the processing speed of an application program that updates caches might decrease. Conversely, as the communication workload for restoration processing or scale-out processing decreases, the time required for restoration processing or scale-out processing increases.

When disk caches and two-way caches are restored, this parameter is ignored and the value of the eads.cache.disk.transfer.interval cache property parameter is used.

(o) eads.replication.fillgap.copy.timeout

This parameter specifies the timeout period (in milliseconds) for transmission of the history of update operations during complementary processing.

Specify the greater of the following values as the time available for processing:

  • The amount of data that is sent at one time to a copy destination EADS server (the value of the eads.replication.fillgap.copy.datasize parameter in the server properties)

  • maximum key size + maximum value size# [Figure] MAX(2, maximum number of data items that can be updated simultaneously)

    #

    Maximum size that can be specified when put, create, update, or replace processing is performed.

    MAX:

    Choose the largest value in the parentheses that follow MAX.

    Example: For MAX(2, 10), the calculation result is 10.

    Maximum number of data items that can be updated simultaneously:

    If you will be performing batch data operations using a memory cache, specify 10. Otherwise, specify 1.

For details about the complementary processing of history of update operations, see 9.3.2(7) Complementary processing of the history of update operations.

(p) eads.admin.operation.resume.send.interval

This parameter specifies a differential data transfer interval (in milliseconds) during execution of the eztool resume command.

(2) Command property file

(a) eads.command.connection.timeout

This parameter specifies a connection timeout value (in milliseconds) for communication with the EADS server during command execution.

If zero is specified in this parameter, no timeout occurs.

Note that the following commands ignore this parameter:

(b) eads.command.common.read.timeout

This parameter specifies a reception timeout value (in milliseconds) for communication with the EADS server during command execution.

Specify in this parameter a value that is greater than the value of the eads.admin.operation.isolate.gracefulstop.waitTime parameter in the server properties.

If zero is specified in this parameter, no timeout occurs.

Note that the following commands ignore this parameter:

When the following commands are executed, this parameter's value is applied in place of the value for the eads.client.connection.receive.timeout parameter in the client properties:

This parameter's value is not applied in the following cases:

(c) eads.command.common.execution.timeout

This parameter specifies a timeout value (in seconds) from the start of command execution.

If zero is specified in this parameter, no timeout occurs.

Note that the following commands ignore this parameter:

(d) eads.command.subcommand-name.read.timeout

This parameter specifies a reception timeout value (in milliseconds) for communication with the EADS server while a specified subcommand is executing.

For subcommand-name, specify the name of the subcommand to which you want to apply this parameter's value. When this subcommand executes, its value takes precedence over the value set for the eads.command.common.read.timeout parameter in the command properties.

Specify in this parameter a value that is greater than the value set for the eads.admin.operation.isolate.gracefulstop.waitTime parameter in the server properties.

If zero is specified in this parameter, no timeout occurs.

Note that the following commands ignore this parameter:

When the following commands are executed, this parameter's value is applied in place of the value set for the eads.client.connection.receive.timeout parameter in the client properties:

This parameter's value is not applied in the following cases:

(e) eads.command.subcommand-name.execution.timeout

This parameter specifies a timeout value (in seconds) since a specified subcommand started executing.

For subcommand-name, specify the name of the subcommand to which you want to apply this parameter's value. When this subcommand executes, its value takes precedence over the value set for the eads.command.common.execution.timeout parameter in the command properties.

If zero is specified in this parameter, no timeout occurs.

Note that the following commands ignore this parameter:

(3) Client property file

(a) eads.client.connection.send.timeout

This parameter specifies a timeout value (in milliseconds) for cluster information update checks and data transmission.

(b) eads.client.connection.receive.timeout

This parameter specifies a timeout value (in milliseconds) for cluster information update checks and data reception.

Consider the following times:

  • Execution times for the user functions allocated on the EADS server

(c) eads.client.clusterInfo.update.interval

This parameter specifies an interval (in milliseconds) at which the EADS client is to perform cluster information update checks on each EADS server in the cluster.

Specify in this parameter a value that is smaller than the value set for the eads.admin.operation.isolate.gracefulstop.waitTime parameter in the server properties.

When you specify this parameter, take into account the number of EADS servers that constitute the cluster.

As the number of EADS servers that constitute the cluster increases, the number of times the EADS client must communicate within the time specified in this parameter increases, resulting in an increase in the EADS client's workload.