Scalable Database Server, HiRDB Version 8 Installation and Design Guide

[Contents][Index][Back][Next]

15.1.3 Formulas for shared memory used by a unit controller

Organization of this subsection
(1) 32-bit mode HiRDB
(2) 64-bit mode HiRDB

(1) 32-bit mode HiRDB

The size of the memory required for the unit controller from startup to termination of a HiRDB/Single Server is the sum of the process items listed as follows:

Ensure that the size of the shared memory for the entire unit controller does not exceed 2 gigabytes.

Process item Shared memory calculation formula (bytes)
Scheduler

Value of pd_utl_exec_mode set to 0:
{[Figure] (432 + 304 [Figure] n) [Figure] 1024[Figure] + 338 + x} [Figure] 1024

Value of pd_utl_exec_mode set to 1:
{[Figure] (432 + 304 [Figure] n) [Figure] 1024[Figure] + [Figure] (m [Figure] 2000 + 136) [Figure] 1024[Figure] + y } [Figure] 1024

x: Single server: 116 + 5 [Figure] (m + 3) + 14

y: Single server: 5 [Figure] (m + 3) + 14

m: Value of pd_max_users

n: Number of servers in unit + number of utility servers in unit + 1
Number of utility servers in the unit: 26 + 12
Lock server 192 + 48 + c + d + 48 + 4096 + g + 48 + i + 48 + 4096 + 48 + n + 16 + t + u + 16
c: When pd_lck_hash_entry is omitted or 0 is specified:
([Figure](8 + 4 [Figure] MAX(((p + 3) [Figure] (value of pd_max_access_tables + 4 + 5 [Figure] 2)
+ value of pd_lck_pool_size [Figure] 6) [Figure] 10,11261)) [Figure] 16[Figure] + 1) [Figure] 16
When 2 or a greater non-prime number is specified for pd_lck_hash_entry:
([Figure](8 + 4 [Figure] largest prime number that is less than the value of pd_lck_hash_entry) [Figure] 16[Figure] + 1)
[Figure] 16
When 1 or a prime number is specified for pd_lck_hash_entry:
([Figure](8 + 4 [Figure] value of pd_lck_hash_entry) [Figure] 16[Figure] + 1) [Figure] 16
d: ((p + 3) [Figure] (value of pd_max_access_tables + 4 + 5 [Figure] 2) +
value of pd_lck_pool_size [Figure] 6) [Figure] 96
g: When value of pd_utl_exec_mode = 1 and p > 32:
((p + 3) [Figure] 3 + p) [Figure] 256
When value of pd_utl_exec_mode = 0 or p [Figure] 32:
((p + 3) [Figure] 3 + 32) [Figure] 256
i: When value of pd_utl_exec_mode = 1 and p > 32:
((value of pd_lck_pool_size [Figure] 8 + ((p + 3)
[Figure] (value of pd_max_access_tables + 4)) [Figure] 2)
+ p [Figure] (value of pd_max_rdarea_no + 1) + (p + 3) [Figure] 2 [Figure] 2 [Figure] 5)
rounded up to the next even value [Figure] 64
When value of pd_utl_exec_mode = 0 or p [Figure] 32:
((value of pd_lck_pool_size [Figure] 8 + ((p + 3)
[Figure] (value of pd_max_access_tables + 4)) [Figure] 2)
+ 32 [Figure] (value of pd_max_rdarea_no + 1) + (p + 3) [Figure] 2 [Figure] 2 [Figure] 5)
rounded up to the next even value [Figure] 64
n: When value of pd_utl_exec_mode = 1 and p > 32:
((p + 3) [Figure] 3 + p) [Figure] 48
When value of pd_utl_exec_mode = 0 or p [Figure] 32:
((p + 3) [Figure] 3 + 32) [Figure] 48
p: value of pd_max_users
t: When value of pd_utl_exec_mode = 1 and p > 32:
32 + ((p + 3) [Figure] 3 + p) [Figure] [Figure] value of pd_max_open_holdable_cursors [Figure] 16[Figure] [Figure] 4
When value of pd_utl_exec_mode = 0 or p [Figure] 32:
32 + ((p + 3) [Figure] 3 + 32) [Figure] [Figure] value of pd_max_open_holdable_cursors [Figure] 16[Figure] [Figure] 4
u: When value of pd_utl_exec_mode = 1 and p > 32:
32 + ((value of pd_lck_pool_size [Figure] 8 + ((p + 3)
[Figure] (value of pd_max_access_tables + 4)) [Figure] 2)
+ p [Figure] (value of pd_max_rdarea_no + 1) + (p + 3) [Figure] 2 [Figure] 2 [Figure] 5)
rounded up to the next even value [Figure] [Figure] value of pd_max_open_holdable_cursors [Figure] 16[Figure] [Figure] 4
When value of pd_utl_exec_mode = 0 or p [Figure] 32:
32 + ((value of pd_lck_pool_size [Figure] 8 + ((p + 3)
[Figure] (value of pd_max_access_tables + 4)) [Figure] 2)
+ 32 [Figure] (value of pd_max_rdarea_no + 1) + (p + 3) [Figure] 2 [Figure] 2 [Figure] 5)
rounded up to the next even value [Figure] [Figure] value of pd_max_open_holdable_cursors [Figure] 16[Figure] [Figure] 4
Transaction manager 288 + 32 + 192 [Figure] m [Figure] 2 + 1028
+ (420 + 528 + 256 + 384 [Figure] 2 + 128) [Figure] m [Figure] 2 + 7) + 256 [Figure] 2

m: Value of pd_max_users
Timer server

32 [Figure] (value of pd_max_users + 3) [Figure] (1 + number of utility servers in unit + 1) + 1440

Number of utility servers in unit is 26 + 12
Statistics log server 384 + 128 [Figure] 16 + 32 + 288 [Figure] 2 + 1024 + 128 [Figure] 3
+ value of pd_stj_buff_size [Figure] 1024 [Figure] 3 + 64 + 4096 + 8192
Process server 160 + 512 [Figure] a + 80 + 256 + (value of pd_max_server_process + 50) [Figure] (256 + 144) + 16 + 1 [Figure] 34 + 16
a: For a single server: 112
System manager 640 + (44 + 4) [Figure] a [Figure] 2 + (100 + 4) [Figure] (b + 30 + 2) + (100 + 4) [Figure] (c + 1) + 40 [Figure] b [Figure] 14 + 256 + 256 + 36 [Figure] d + 12 [Figure] e + 8 + 5844 + 212 + f + 16 + 1024
a: Number of single server definitions
b: Number of single servers in unit
c: Number of units
d: Number of -c options specified in pdunit operand
e: Number of pdcltgrp operands specified
f: 2052 + 128 [Figure] (g + 3)
g: For a single server: 91
Name server 169984
Node manager [Figure] (1152 + 288 [Figure] total number of units + 80 [Figure] total number of servers + 1536 + 800 + 56 [Figure] number of servers in unit + 240 [Figure] A + 44 [Figure] A + 28 [Figure] A + 16 [Figure] B + 32)
[Figure] 1024[Figure] [Figure] 1024

A: pd_utl_exec_mode = 0: 1024
pd_utl_exec_mode = 1 and the unit contains a single server: Value of pd_max_users [Figure] 10 + 400
pd_utl_exec_mode = 1 and the unit contains no single server: Value of pd_max_users [Figure] 7
If the value of A does not exceed 1024, use 1024 as the value of A.

B: pdcltgrp operand not specified: 0
pdcltgrp operand specified: Number of pdcltgrp operands specified + 1
I/O server [Figure](28 + ([Figure](32 + A) [Figure] 32[Figure] [Figure] 32)) [Figure] 128[Figure] [Figure] 128

A: pd_large_file_use = N specified (or omitted):
3248 + (14+16) [Figure] 808 + 1 [Figure] 272 + 534 [Figure] 272 + 16 [Figure] 272 + value of pd_max_file_no [Figure] 808
pd_large_file_use = Y specified:
3248 + (14+16) [Figure] 972 + 1 [Figure] 276 + 534 [Figure] 276 + 16 [Figure] 276 + value of pd_max_file_no [Figure] 972
Log server 32 + 48 + 128 [Figure] 19 + 384 + 128 [Figure] 7 + 1024 + 512
+ [Figure](128 + 256 + 160 + 8 + 64) [Figure] value of pd_log_rec_leng[Figure]
[Figure] value of pd_log_rec_leng + 64 + 4096 [Figure] 2 + (256 + 480) [Figure] B + 128
[Figure] value of pd_log_write_buff_count
+ (value of pd_log_write_buff_count + A)
[Figure] [Figure]{value of pd_log_max_data_size + (68 + 44 + 96 + 160)} [Figure] 4096[Figure] [Figure] 4096
+ C + [Figure] (512 + 256 + 128 [Figure] B + 464 [Figure] B) [Figure] (8192 - 128) [Figure] [Figure] 8192
A: 16
B: Number of pdlogadfg -d sys operands specified
C: 512
Synchronization point dump server [Figure] (368 + 1456 [Figure] 2) [Figure] 1024[Figure] [Figure] 1024
+ [Figure]{(96 + 80 + 208 + 208) + 192 [Figure] (number of pdlogadfg -d spd operands specified)
+ 416 [Figure] (number of pdlogadpf -d spd operands specified) + 1023}
[Figure] 1024[Figure] [Figure] 1024
Common to all units a + b + 64 + (m + 3) [Figure] c + 64 + 48 + d + e
+ (value of pd_max_server_process + 100) [Figure] (48 + 16) + 32
+ (value of pd_max_server_process + 100 + 384) [Figure] 32 + f + g + h
+ (value of pd_max_server_process + 127) [Figure] 32 + 32

a: 26560

b: 2988

c: 1952

d: 32 [Figure] 32

e: 64 + 64 [Figure] {(m + 3) [Figure] 2
+ MAX (5, ([Figure] m + 3] [Figure] 10[Figure]) + 7}
f: 512 [Figure] (13 + 3) [Figure] 2

g: {(96 + value of pd_lck_until_disconnect_cnt [Figure] 112 + 4095) [Figure] 4096}[Figure] 4096 [Figure] 2

h: [Figure] (number of port numbers specified with pd_registered_port [Figure] 16 + 32 + 1023) [Figure] 1024[Figure] [Figure] 1024
If pd_registered_port is omitted: 0

m: Value of pd_max_users
Transaction log server

1024 + 512 [Figure] A

+ {
128 [Figure] B + 128
+ [ F + [Figure]512 [Figure] value of pd_log_lec_leng[Figure] [Figure] value of pd_log_rec_leng
+ [Figure] (value of pd_log_max_data_size + 68 + 44 + 96 + 160) [Figure] value of pd_log_lec_leng[Figure] [Figure] value of pd_log_rec_leng ] [Figure] D [Figure] 2
+ E + (48 + 8) [Figure] B [Figure] 2

} [Figure] D

+ 584 [Figure] B + 128 [Figure] B + 64 [Figure] B [Figure] C + 128

+ {
F + [Figure]512 [Figure] value of pd_log_lec_leng[Figure] [Figure] value of pd_log_rec_leng
+ [Figure] (value of pd_log_max_data_size + 68 + 44 + 96 + 160)
[Figure] value of pd_log_lec_leng[Figure] [Figure] value of pd_log_rec_leng
} [Figure] D
+ E + (48 + 8) [Figure] (B [Figure] 2 + 2)

A: 2

B: 7 + value of pd_max_users [Figure] 2

C: 1

D: Single server: 1

E: 512

F: 512
Status server [Figure]64 [Figure] 32[Figure] [Figure] 32
Security audit [Figure]A [Figure] 1024[Figure] [Figure] 1024
A: 560 if the pd_aud_file_name operand is omitted
456 + (304 [Figure] 200) + B if the pd_aud_file_name operand is specified
B: 0 if the pd_aud_async_buff_size operand value is 0
The following value if the pd_aud_async_buff_size operand value is 4096 or greater:
(160 [Figure] value of pd_aud_async_buff_count operand)
+{([Figure]value of pd_aud_async_buff_size operand [Figure] 4096[Figure] [Figure] 4096)
[Figure] value of pd_aud_async_buff_count operand} + 4096

(2) 64-bit mode HiRDB

The size of the memory required for the unit controller from startup to termination of a HiRDB/Single Server is the sum of the process items listed as follows:

Process item Shared memory calculation formula (bytes)
Scheduler

Value of pd_utl_exec_mode set to 0:
{[Figure](432 + 304 [Figure] n) [Figure] 1024[Figure] + 338 + x} [Figure] 1024

Value of pd_utl_exec_mode set to 1:
{[Figure](432 + 304 [Figure] n) [Figure] 1024[Figure] + [Figure](m [Figure] 2000 + 136) [Figure] 1024[Figure] + y} [Figure] 1024

x: Single server: 116 + 5 [Figure] (m + 3) + 14

y: Single server: 5 [Figure] (m + 3) + 14

m: Value of pd_max_users

n: Number of servers in unit + number of utility servers in unit + 1
Number of utility servers in the unit: 26 + 12
Lock server 272 + 80 + c + d + 64 + 8192 + g + 80 + i + 64 + 8192 + 64 + n + 16 + t + u + 16
c: When pd_lck_hash_entry is omitted or 0 is specified:
([Figure](8 + 8 [Figure] MAX(((p + 3) [Figure] (value of pd_max_access_tables + 4 + 5 [Figure] 2)
+ value of pd_lck_pool_size [Figure] 4) [Figure] 10,11261)) [Figure] 16[Figure] + 1) [Figure] 16
When 2 or a greater non-prime number is specified for pd_lck_hash_entry:
([Figure](8 + 8 [Figure] largest prime number that is less than the value of pd_lck_hash_entry) [Figure] 16[Figure] + 1)
[Figure] 16
When 1 or a prime number is specified for pd_lck_hash_entry:
([Figure](8 + 8 [Figure] value of pd_lck_hash_entry) [Figure] 16[Figure] + 1) [Figure] 16
d: ((p + 3) [Figure] (value of pd_max_access_tables + 4 + 5 [Figure] 2) +
value of pd_lck_pool_size [Figure] 4) [Figure] 128
g: When value of pd_utl_exec_mode = 1 and p > 32:
((p + 3) [Figure] 3 + p) [Figure] 320
When value of pd_utl_exec_mode = 0 or p [Figure] 32:
((p + 3) [Figure] 3 + 32) [Figure] 320
i: When value of pd_utl_exec_mode = 1 and p > 32:
((value of pd_lck_pool_size [Figure] 5 + ((p + 3)
[Figure] (value of pd_max_access_tables + 4)) [Figure] 2)
+ [Figure]value of pd_lck_pool_size [Figure] 3[Figure] + p [Figure] (value of pd_max_rdarea_no + 1)
+ (p + 3) [Figure] 2 [Figure] 2 [Figure] 5)
rounded up to the next even value [Figure] 112
When value of pd_utl_exec_mode = 0 or p [Figure] 32:
((value of pd_lck_pool_size [Figure] 5 + ((p + 3)
[Figure] (value of pd_max_access_tables + 4)) [Figure] 2)
+ [Figure]value of pd_lck_pool_size [Figure] 3[Figure] + 32 [Figure] (value of pd_max_rdarea_no + 1)
+ (p + 3) [Figure] 2 [Figure] 2 [Figure] 5)
rounded up to the next even value [Figure] 112
n: When value of pd_utl_exec_mode = 1 and p > 32:
((p + 3) [Figure] 3 + p) [Figure] 80
When value of pd_utl_exec_mode = 0 or p [Figure] 32:
((p + 3) [Figure] 3 + 32) [Figure] 80
p: value of pd_max_users
t: When value of pd_utl_exec_mode = 1 and p > 32:
32 + ((p + 3) [Figure] 3 + p) [Figure] [Figure] value of pd_max_open_holdable_cursors [Figure] 16[Figure] [Figure] 4
When value of pd_utl_exec_mode = 0 or p [Figure] 32:
32 + ((p + 3) [Figure] 3 + 32) [Figure] [Figure] value of pd_max_open_holdable_cursors [Figure] 16[Figure] [Figure] 4
u: When value of pd_utl_exec_mode = 1 and p > 32:
32 + ((value of pd_lck_pool_size [Figure] 5 + ((p + 3)
[Figure] (value of pd_max_access_tables + 4)) [Figure] 2)
+ [Figure]value of pd_lck_pool_size [Figure] 3[Figure] + p [Figure] (value of pd_max_rdarea_no + 1)
+ (p + 3) [Figure] 2 [Figure] 2 [Figure] 5)
rounded up to the next even value [Figure] [Figure] value of pd_max_open_holdable_cursors [Figure] 16[Figure] [Figure] 4
When value of pd_utl_exec_mode = 0 or p [Figure] 32:
32 + ((value of pd_lck_pool_size [Figure] 5 + ((p + 3)
[Figure] (value of pd_max_access_tables + 4)) [Figure] 2)
+ [Figure]value of pd_lck_pool_size [Figure] 3[Figure] + 32 [Figure] (value of pd_max_rdarea_no + 1)
+ (p + 3) [Figure] 2 [Figure] 2 [Figure] 5)
rounded up to the next even value [Figure] [Figure] value of pd_max_open_holdable_cursors [Figure] 16[Figure] [Figure] 4
Transaction manager 304 + 32 + 192 m 2 + 1048
+ (416 + 688 + 256 + 392 2 + 128) (m 2 + 7) + 256 2

m: Value of pd_max_users
Timer server

32 [Figure] (value of pd_max_users + 3) [Figure] (1 + number of utility servers in unit + 1) + 1440 + (48 - 32) [Figure] 2

Number of utility servers in unit is 26 + 12
Statistics log server 424 + 128 [Figure] 16 + 32 + 288 [Figure] 2 + 1168 + 144 [Figure] 3
+ value of pd_stj_buff_size [Figure] 1024 [Figure] 3 + 64 + 4096 + 8192
Process server 176 + 528 [Figure] a + 80 + 256 + (value of pd_max_server_process + 50) [Figure] (256 + 160) + 16 + 1 [Figure] 34 + 16
a: For a single server: 112
System manager 544 + 40 [Figure] a [Figure] 2 + 104 [Figure] {b + (26 + b
672 + (48 + 8) [Figure] a [Figure] 2 + (112 + 8) [Figure] (b + 30 + 2) + (104 + 8) [Figure] (c + 1) + 40 [Figure] b [Figure] 14 + 256 + 256 + 40 [Figure] d + 16 [Figure] e + 8 + 5864 + 236 + f + 16 + 1024
a: Number of single server definitions
b: Number of single servers in unit
c: Number of units
d: Number of -c options specified in pdunit operand
e: Number of pdcltgrp operands specified
f: 2056 + 128 [Figure] (g + 3)
g: For a single server: 91
Name server 169984
Node manager [Figure] (1312 + 320 total number of units in HiRDB system
+ 96 total number of servers in HiRDB system + 2048 + 960
+ 72 number of HiRDB servers in the unit + 240 A + 44 A + 28 A + 16 B + 48)
[Figure] 1024[Figure] 1024

A: pd_utl_exec_mode = 0: 1024
pd_utl_exec_mode = 1 and the unit contains a single server: value of pd_max_users [Figure] 10 + 400
pd_utl_exec_mode = 1 and the unit contains no single server: value of pd_max_users [Figure] 7
If the value of A does not exceed 1024, use 1024 as the value of A.

B: pdcltgrp operand not specified: 0
pdcltgrp operand specified: Number of pdcltgrp operands specified + 1
I/O server [Figure](56 + ([Figure](56 + A) [Figure] 32[Figure] [Figure] 32)) [Figure] 128[Figure] [Figure] 128

A: pd_large_file_use = N specified (or omitted):
3248 + (14 + 16) [Figure] 808 + 1 [Figure] 272 + 534 [Figure] 272 + 16 [Figure] 272 + value of pd_max_file_no [Figure] 808 + (48 - 32) [Figure] 3

pd_large_file_use = Y specified:
3248 + (14+16) [Figure] 972 + 1 [Figure] 276 + 534 [Figure] 276 + 16 [Figure] 276 + value of pd_max_file_no [Figure] 972 + (48 - 32) [Figure] 3
Log server 32 + 48 + 128 19 + 432 + 128 7 + 1168 + 512
+ [Figure] (128 + 256 + 160 + 8 + 64) [Figure] value of pd_log_rec_leng[Figure] value of pd_log_rec_leng
+ 64 + 4096 2 + (256 + 480) B
+ 144 value of pd_log_write_buff_count
+ (value of pd_log_write_buff_count + A)
[Figure]{value of pd_log_max_data_size + (68 + 44 + 96 + 160)} [Figure] 4096[Figure] 4096
+ C + [Figure] (512 + 256 + 128 B + 464 B) [Figure] (8192 - 128) [Figure] 8192
A: 16
B: Number of pdlogadfg -d sys operands specified
C: 512
Synchronization point dump server [Figure] (384 + 1536 [Figure] 2) [Figure] 1024[Figure] [Figure] 1024
+ [Figure]{(128 + 80 + 240 + 240) + 192 [Figure] (number of pdlogadfg -d spd operands specified)
+ 416 [Figure] (number of pdlogadpf -d spd operands specified) + 1023}
[Figure] 1024[Figure] [Figure] 1024
Common to all units a + b + 80 + (m + 3) [Figure] c + 64 + 48 + d + e
+ (value of pd_max_server_process + 100) [Figure] (64 + 16) + 32
+ (value of pd_max_server_process + 100 + 384) [Figure] 32 + 32 + f + g + h
+ (value of pd_max_server_process + 127) [Figure] 48 + 32
a: 35968
b: 3480
c: 2760
d: 48 [Figure] 32
e: 80 + 96 [Figure] {(m + 3) [Figure] 2
+ MAX (5, ([Figure] m + 3] [Figure] 10[Figure]) + 7}
f: 512 [Figure] (13 + 3) [Figure] 2
g: {(128 + value of pd_lck_until_disconnect_cnt [Figure] 112 + 4095) [Figure] 4096}[Figure] 4096 [Figure] 2
h: [Figure] (number of port numbers specified with pd_registered_port [Figure] 16 + 32 + 1023) [Figure] 1024[Figure] [Figure] 1024
If pd_registered_port is omitted: 0

m: Value of pd_max_users
Transaction log server

1168 + 688 [Figure] A

+ {
128 [Figure] B + 144
+ [G + [Figure]256 [Figure] value of pd_log_lec_leng[Figure] [Figure] value of pd_log_rec_leng
+ [Figure] (value of pd_log_max_data_size + 68 + 44 + 96 + 160) [Figure] value of pd_log_lec_leng[Figure]
[Figure] value of pd_log_rec_leng ] [Figure] D [Figure] 2
+ E + (48 + 8) [Figure] B [Figure] 2
} [Figure] D

+ 600 [Figure] B + 128 [Figure] B + 64 [Figure] B [Figure] C + 144

+ {
G + [Figure]256 [Figure] value of pd_log_lec_leng [Figure] [Figure] value of pd_log_rec_leng
+ [Figure] (value of pd_log_max_data_size + 68 + 44 + 96 + 160)
[Figure] value of pd_log_lec_leng [Figure] [Figure] value of pd_log_rec_leng
} [Figure] D
+ E + (48 + 8) [Figure] (B [Figure] 2 + 2)
A: 2
B: 7 + value of pd_max_users [Figure] 2
C: 1

D: Single server: 1
E: 512
G: 512
Status server [Figure]64 [Figure] 32[Figure] [Figure] 32
Security audit [Figure]A [Figure] 1024[Figure] [Figure] 1024
A: 624 if the pd_aud_file_name operand is omitted
520 + (320 [Figure] 200)+ B if the pd_aud_file_name operand is specified
B: 0 if the pd_aud_async_buff_size operand value is 0
The following value if the pd_aud_async_buff_size operand value is 4096 or greater:
(176 [Figure] value of pd_aud_async_buff_count operand)
+{([Figure]value of pd_aud_async_buff_size operand [Figure] 4096[Figure] [Figure] 4096)
[Figure] value of pd_aud_async_buff_count operand}