9.1.1 System design

Organization of this subsection
(1) Server configuration
(2) Placement of system manager
(3) Placement of floating server
(4) Using multiple front-end servers
(5) Memory used by HiRDB/Parallel Server

(1) Server configuration

The basic configuration of a HiRDB/Parallel Server consists of a front-end server, dictionary server, and back-end server on the same server machine.

If the CPU workload of the server machine is low, multiple servers may be placed on one server machine. In such a case, more shared memory is required. If there is not enough shared memory, unit startup fails; for this reason, sufficient memory must be allocated.

The following table shows the ranges for the number of servers that can be installed.

Table 9-1 Number of permitted servers

ItemNumber of permitted servers
Number of system managers1
Number of front-end servers1 to 1,024
Number of dictionary servers1
Number of back-end servers1 to 16,382
Number of servers per unit1 to 34

(2) Placement of system manager

The server machine on which the system manager is defined should be at a location that is easily accessible by the HiRDB administrator for the following reasons:

(3) Placement of floating server

When a complicated retrieval such as join processing is executed, it is better for HiRDB to use a back-end server that does not have a database in order to improve performance. If the server machine has sufficient space and complicated retrieval processing is to be performed, installation of a floating server should be considered. When a floating server is installed, a HiRDB file system area for work table files must be created. The name of this HiRDB file system area is specified in the pdwork operand of the back-end server definition.

(4) Using multiple front-end servers

If the CPU workload for SQL processing is too high to be processed on the front-end server, multiple front-end servers can be set up. This is called multiple front-end servers; for details, see 9.1.3 Setting up multiple front-end servers.

(5) Memory used by HiRDB/Parallel Server

This subsection describes the memory used by HiRDB/Parallel Server.

HiRDB/Parallel Server uses the following memory.

(a) Storage requirements

The storage space required by the HiRDB/Parallel Server must be estimated for each server machine. For details about how to estimate the storage requirements, see 15.2 Estimating the memory size required for a HiRDB/Parallel Server.

(b) Page locking shared memory

With HiRDB, the following types of shared memory can be locked in actual memory.

Locking shared memory in actual memory reduces the number of page I/Os, resulting in more stable performance.

Prerequisites
The prerequisites for page locking of shared memory are described below.
Windows version
In Windows, pages are locked using the Large Page facility supported starting with Windows Server 2003 Service Pack 1. For this reason, it is assumed that you have a version of Windows the supports Large Pages. Use the pdntenv -os command to check whether your version of Windows supports page locking.
Page lock privileges
You must have privileges that allow locking of pages in memory in order to lock shared memory pages. Depending on the account you logged on with when executing services, you might not have this privilege. The follow describes how to set privileges.
Logon account used during service executionHow to set privileges
HiRDB administratorChoose the OS's Local Security Settings, then Local Policies, then User Rights Assignment, and then add the HiRDB administrator under Lock pages in memory.
Local system accountThe local system account has authority to lock pages in memory. No privileges need to be set.
Operating environment settings
To lock shared memory pages, you must specify shared memory allocation destinations. Specify page with the pdntenv command's -shmfile option, and then set shared memory allocation destinations in the paging file (virtual memory).
Page locking methods
This subsection describes shared memory page locking methods for each type of shared memory.
  • Shared memory for unit controllers
    Specify fixed in the pd_shmpool_attribute operand of the system common definition or unit control information definition.
  • Shared memory for global buffers
    Specify fixed in the pd_dbbuff_attribute operand of the system common definition or unit control information definition.
  • Shared memory used by dynamically changed global buffers
    Specify fixed in the pd_dbbuff_attribute operand of the system common definition or unit control information definition. This locks shared memory used by global buffers dynamically changed by the pdbufmod command in actual memory.
  • Shared memory for in-memory data buffers
    Specify fixed in the pdmemdb command -p option.
    Note
    When contiguous areas cannot be secured in actual memory, shared memory pages cannot be locked. HiRDB operation when page locking fails is as follows.
    Shared memory for unit controllers or global buffers
    Shared memory is secured without locking pages, and processing continues.
    Shared memory that uses dynamically changed global buffers, or shared memory for in-memory data buffers
    HiRDB or the command terminates abnormally.