3.3.3 Operands related to HiRDB processing

4) pd_server_entry_queue = spnfifo | fifo | loop
If contention occurs in the HiRDB server process during concurrent execution of UAPs, processing requests may sometimes be temporarily queued. This operand specifies what HiRDB must do in this case. Note that process contention in this case means that multiple processes are simultaneously trying to lock internal resources, such as tables and RDAREAs, when transactions are running on the HiRDB server process. Only a single process is allowed to lock internal resources at any point in time. Spin referred to in the following explanation means a process for acquiring the right to execute a lock. When another process releases the right to execute a lock, a process that is spinning has a higher probability of acquiring the right to execute a lock.
spnfifo:
A processing request that occurs first is given higher priority. However, because the process is spun a certain number of times before being registered in a queue, the priority order is not perfect. This method is used in Version 06-00 and older versions.
fifo:
A processing request that occurs first is given higher priority than when spnfifo is specified. Because the process is not spun a certain number of times before a process is registered in a queue, the priority order is maintained better than when spnfifo is specified. This method also reduces the CPU load.
loop:
All processing requests are given the same priority. When processes are registered in a queue, they are spun at high speed. Specifying loop may improve the response during concurrent execution of UAPs. However, this method places a greater load on the CPU than other methods.
Specification guidelines
Normally, you need not specify this operand.
Change the specification value if the processing performance during concurrent execution of UAPs does not improve. Doing so may improve the performance.
5) pd_thdlock_wakeup_lock = Y | N
Specifies a thread lock release notification method.
Y:
When issuing a thread lock release notification, a new separate lock is temporarily obtained. Because this temporary lock is obtained, reliable transmission of the release notification is guaranteed.
N:
When issuing a thread lock release notification, no new separate lock is temporarily obtained. When no temporary lock is obtained, a transaction may occur that has a longer execution time than other transactions (how much longer is determined by the value specified for the pd_thdlock_pipe_retry_interval operand).
Specification guidelines
  1. The following table shows the effects of multiplexed transaction execution:
    Comparison itempd_thdlock_wakeup_lock operand value
    YN
    Difference in transaction execution timeReduces the difference.Increases the difference.
    Time required for the completion of all transactionsLengthensShortens
  2. The following table shows the recommended values of this operand:
    ConditionRecommended value
    When a new HiRDB is usedY
    When HiRDB is already being usedWhen the execution times of all transactions must be the same during multiplexed transaction executionY
    When some differences in the execution times of all transactions are allowed during multiplexed transaction executionN
Relationship to other operands
If you specify N in this operand or you omit this operand, evaluate the specification of the pd_thdlock_pipe_retry_interval operand.
6) pd_thdlock_pipe_retry_interval = thread-lock-release-check-interval
[Figure]<unsigned integer>((0-2147483647))(microseconds)
Specifies in microseconds the interval at which to check for thread lock release. Specify this operand if pd_thdlock_wakeup_lock = N (default value) is specified. In all other cases, there is no need to specify this operand.
If multiple transactions are executed concurrently, differences occur in their execution times. The value specified for this operand provides an estimate for the maximum execution time difference (this value is not exact).
Specification guidelines
  • If this operand is to be specified, specify 1000 for it.
  • If the specification of 1000 increases the CPU usage rate too much, specify a greater value.
  • Even if you specify a value less than 1000, performance does not improve over a case in which 1000 is specified.
Note
If 0 is specified for this operand, the release check is repeated within short intervals and may result in an extremely high CPU usage rate.
7) pd_thdlock_retry_time = thread-lock-sleep-time
[Figure]<unsigned integer>((1-1000000))(microseconds)
Specifies in microseconds the thread lock sleep time. If this operand is specified when all the conditions listed below are satisfied, the CPU usage rate may decrease. Otherwise, there is no need to specify this operand.
  • The CPU usage rate is very high.
  • Reducing the CPU usage rate is necessary even if it results in a reduction in performance.
  • 0 is specified for the pd_thdlock_sleep_func operand.
The following describes the HiRDB processing based on the combination of the pd_thdlock_sleep_func and the pd_thdlock_retry_time operand values:
pd_thdlock_sleep_func operand valuepd_thdlock_retry_time operand value
1 to 1000010001 to 1000000​
0Each process stands by for the thread lock sleep time specified by select() or Sleep().
1The OS determines process allocation using sched_yield() or SwitchToThread() (the pd_thdlock_retry_time operand value is ignored).Each process stands by for the thread lock sleep time specified by select() or Sleep().
Specification guidelines
  • If this operand is to be specified, begin specify 10000 for it.
  • If the specification of 10000 increases the CPU usage rate too much, specify a greater value.
  • If there is an ample margin in the CPU usage rate, specify a value less than 10000.
Notes
  • Reducing the value may not change the performance.
  • Specifying 1000 or a greater value may have an adverse effect on performance.
8) pd_thdspnlk_spn_count = thread-spin-lock-spin-count
[Figure]<unsigned integer>((0-2147483647))
Specifies a spin count for thread spin lock. Specifying this operand when all of the following conditions are satisfied may improve the system performance. Otherwise, there is no need to specify this operand.
  • An ample margin exists in the CPU usage rate.
  • You want to improve performance even if the CPU usage rate must be increased.
Specification guidelines
  • If this operand is to be specified, specify a value that is greater than the default value (512).
  • Because the specification value depends on the OS type, the processor type, the machine performance, the disk performance, the UAP content, and the number of UAPs concurrently being executed, there is no clear guideline. Determine an appropriate value by varying the specification value and measuring the performance.
Notes
  • If the value of this operand is too large, the CPU usage rate may increase, causing problems such as slower OS operation. In this case, decrease the operand value.
  • Increasing the value of this operand may not always improve performance.
9) pd_db_io_error_action = dbhold | unitdown
Specifies the processing to be performed by HiRDB when an input/output error occurs in an RDAREA (excluding the master directory RDAREA). If an input/output error occurs in the master directory RDAREA, HiRDB (a unit for a HiRDB/Parallel Server) is always abnormally terminated regardless of the specification in this operand. For the actions to be taken when an RDAREA input/output error occurs, see the HiRDB Version 8 System Operation Guide.
An input/output error in this case refers to an error that occurs when a file manipulation attempt by HiRDB fails due to a cause that cannot be determined by HiRDB. When such an error occurs, -1544 is output as the error code returned in response to a HiRDB file system access request.
dbhold:
When an input/output error occurs in an RDAREA, the RDAREA is placed in an error shutdown state.
unitdown:
If an input/output error occurs in an RDAREA, HiRDB (a unit for a HiRDB/Parallel Server) is abnormally terminated. However, if an input/output error occurs again following abnormal termination, the RDAREA is placed in an error shutdown state. To enable the specification of unitdown again, take one of the following actions:
  • Start HiRDB normally.
  • Execute the system reconfiguration command (pdchgconf command).
Specification guidelines
To determine the specification value for this operand, see Actions to be taken when an RDAREA input/output error occurs in the HiRDB Version 8 System Operation Guide.
Notes
  • If an input/output error occurs when unitdown is specified, HiRDB is abnormally terminated. Consequently, if a UAP or utility is being executed in the pre-update log acquisition mode or no-log mode, the processing target RDAREA may go into an error shutdown state.
  • If an input/output error occurs during the startup or termination process, HiRDB is not abnormally terminated, even if unitdown is specified.