2.2.18 Operands related to buffers

85) pd_sql_object_cache_size = SQL-object-buffer-size
~<unsigned integer> (kilobytes)
  • 32-bit mode: ((22-256000))<<(value of pd_max_users + n) [Figure] 22>>
  • 64-bit mode and recommended mode: ((22-2000000))<<(value-of-pd_max_users + n) [Figure] 40>>
  • 64-bit mode and 0904 compatibility mode: ((22-2000000))<<(value-of-pd_max_users + n) [Figure] 22>>
n: 4 if the HiRDB parallel server configuration will take the configuration in which multiple front-end servers are placed. For others, 3.
Specifies in kilobytes the size of the buffer area (shared memory) in which SQL objects are to be placed.
Specification guidelines
  • SQL objects are saved in a buffer until the user's transaction has terminated. The buffer must be large enough to store the SQL objects of all transactions that will be executed concurrently.
  • If the SQL object buffer hit rate is low, the performance might decreases due to the overhead of SQL statement analysis processing.
  • SQL analysis can be reduced by saving the SQL objects of static SQLs in the buffer after transaction termination (until the buffer runs out of space) and sharing them among multiple users who execute the same UAP. To effectively utilize the buffer, allocate it so that the SQL objects of frequently used UAPs are resident in the buffer.
  • To estimate the buffer length, first determine the buffer length needed for UAP execution from the length of the SQL objects from the SQL statements to be issued by the UAP. Then, compute the buffer length by considering the number of UAPs that will be executed concurrently and the number of concurrently executing users.
  • For details about how to estimate the length of the SQL object from a single SQL statement, see C.2 Formulas for determining size of SQL object buffer (pd_sql_object_cache_size).
Tuning the specified value
For details about how to tune the SQL object buffer length, see the HiRDB Version 9 System Operation Guide.
Effects on individual estimation formulas
If the value of the pd_sql_object_cache_size operand is changed, the following estimation formulas are affected:
HiRDB Version 9 Installation and Design Guide:
  • Formula 1 under Formulas for shared memory used by a single server
  • Formula 1 under Formulas for the size of the shared memory used by a dictionary server
  • Formula 1 under Formulas for the size of the shared memory used by a back-end server
  • Formula for the shared memory used by a front-end server
86) pd_def_buf_control_area_assign = INITIAL | TRAN
Specifies whether the control areas for the buffers for table definition information, buffers for view analysis information, buffers for user-defined type information, and buffers for routine definition information are to be allocated in a single batch at the time of HiRDB activation or in a single batch at the time of transaction activation.
INITIAL:
Allocate the various buffer control areas in a single batch at the time of HiRDB activation. These control areas are not released until HiRDB terminates.
TRAN:
Allocate the various buffer control areas in a single batch at the time of transaction activation. These control areas are released when the transaction is completed.
Specification guidelines
Specify INITIAL when performance is important; transaction performance will be improved. However, because a larger shared memory will be required than when TRAN is specified, re-evaluate the memory requirements. For details about how to estimate the shared memory size, see the HiRDB Version 9 Installation and Design Guide.
Effects on individual estimation formulas
If the value of the pd_def_buf_control_area_assign operand is changed, the following estimation formulas are affected:
HiRDB Version 9 Installation and Design Guide:
  • Formula 1 under Formulas for shared memory used by a single server
  • Formula for the shared memory used by a front-end server
87) pd_thread_max_stack_size = maximum-stack-size-per-thread
~<unsigned integer>((0-maximum stack size permitted by the OS (up to 2047)))<<0>>(megabytes)
This operand is applicable only to a HiRDB parallel server configuration.
Specifies the maximum stack size to be used by one thread. When 0 is specified or this operand is omitted, there is no limit to the stack size to be used by one thread. Because HiRDB controls pseudo-threads, it allocates as stack memory that it secures on its own. Consequently, the value of the OS's maxssiz parameter (stacksize for Solaris and Linux) is invalid for pseudo-threads. This parameter is specified instead of the maxssiz parameter.
Specify a value that is equal to or smaller than maxssiz for this operand.
Advantages
A UAP error or a complex SQL request from a UAP might result in one thread using a large amount of system resources, causing the OS to hang up. When this operand is specified, it limits the stack size to be used by one thread, thus preventing the OS from hanging up.
Notes
The value specified by this operand must be equal to or smaller than the maximum stack size permitted by the OS. The maxssiz parameter can be used to determine the maximum stack size permitted by the OS.
88) pd_thread_stack_expand_size = stack-extension-size-per-thread
~<unsigned integer> ((0-2146435072))<<0>> (bytes)
This operand increases the stack size per thread for the threads controlled by HiRDB.
Normally, this operand is omitted. Change the value of the operand only if asked to by a maintenance engineer.