9.1.3 Setting up multiple front-end servers

A HiRDB/Parallel Server uses multiple back-end servers to process multiple SQL processing in parallel. The front-end server is responsible for such operations as executing SQL analysis and SQL optimization, sending instructions to the back-end servers, and editing retrieval results. In a system with heavy traffic, the front-end server's workload may be very high, resulting in adverse effects on processing performance. In such a case, multiple front-end servers can be installed in order to distribute the workload. This is called multiple front-end servers.

Advantages
Throughput bottlenecks are resolved for each server machine where a front-end server is running, and its scalability is improved.
Criteria
The CPU workload in SQL processing is too high to be processed by one server machine.
Rules
A maximum of 1,024 front-end servers can be installed.
Relationship to server machine
Multiple front-end servers cannot be set up in a single unit. It is also possible not to set up a front-end server in a specific unit. The following figure shows an example of a configuration of multiple front-end servers.

Figure 9-2 System configuration for a HiRDB/Parallel Server with multiple front-end servers

[Figure]
Organization of this subsection
(1) Selecting a front-end server to be connected
(2) Environment setup
(3) HiRDB administrator operation
(4) Sorting by insertion or update time in a configuration of multiple front-end servers
(5) Client user operation

(1) Selecting a front-end server to be connected

When there are multiple front-end servers, the front-end server that is to be connected to a UAP is determined as follows.

(2) Environment setup

Because there are multiple front-end servers executing, no special specifications are usually required.

However, appropriate values must be specified in the following operands (for details about the standard values for these operands, see the manual HiRDB Version 9 System Definition):

(3) HiRDB administrator operation

The operating procedures are the same, but there are differences in the operands that are specified in the HiRDB system definition and in the environment setup procedures, such as the number of system files to be created.

(4) Sorting by insertion or update time in a configuration of multiple front-end servers

If a table contains a timestamp-type column for which the DEFAULT clause with CURRENT_TIMESTAMP as the default value was specified during table definition, you must take precautions when you sort the table by row insertion or update time in a configuration of multiple front-end servers.

In the case of multiple front-end servers, the front-end server connected to the UAP acquires the current timestamp and sets that value as the default value for the timestamp column. Note that the system time may not match between the units containing the front-end servers. If the system time does not match, the sort order based on the timestamp column and the sort order based on the actual row insertion or update time will not match.

To match the sort order, specify the DEFAULT clause with CURRENT_TIMESTAMP USING BES as the default value for the timestamp column during table definition. If you specify USING BES, the back-end server that manages the RDAREA storing the row to be inserted or updated is used to acquire the current timestamp, and then that value is inserted in the row or the row is updated by that value. As a result, the sort order based on the timestamp-type column matches the sort order based on the actual row insertion or update time for each unit that contains the back-end server managing the RDAREA that stores the row.

The following table shows the server that acquires the current timestamp depending on whether USING BES is specified.

Table 9-2 Server that acquires the current timestamp depending on whether USING BES is specified

USING BESServer that acquires the current timestamp
HiRDB/SingleHiRDB/Parallel Server
Not specifiedSingle serverFront-end server that connected to the UAP
SpecifiedBack-end server that manages the RDAREA containing the row to be inserted or updated
Notes
  • If a table is partitioned and the table storage RDAREA is managed by multiple back-end servers located on different units, the sort order based on the value of the timestamp-type column may not match the sort order based on the actual row insertion or update time.
  • In the case of a shared table, you cannot insert the default value in a timestamp-type column or update it by the default value unless the table is locked.
  • If the database load utility (pdload) is used to store data in a table, the time the utility was started by the activated unit is set as the timestamp value.

(5) Client user operation

To enable a client user to select the front-end server for connection, the desired front-end server must be specified in the client environment definition. The client environment definition varies depending on whether the high-speed connection facility or the FES host direct connection facility is used. The following table shows the client environment definitions that must be specified. For details about the client environment definitions, see the HiRDB Version 9 UAP Development Guide.

Table 9-3 Client environment definitions required for multiple front-end servers

Client environment definition operandNot specifying a front-end server to be connectedSpecifying a front-end server
to be connected
FES host direct connectionHigh-speed connection
PDHOSTMMM
PDFESHOST--MM
PDNAMEPORTMMM
PDSERVICEPORT----M
PDSERVICEGRP--MM
PDSRVTYPE----M
M: Must be specified.
--: Need not be specified.
(a) Guidelines for determining the front-end server to be specified
(b) HiRDB server connection time

The HiRDB server connection time increases from 1 to 3 as follows (with 1 being the shortest):

  1. High-speed connection facility
  2. FES host direct connection facility
  3. No front-end server specified for connection