Nonstop Database, HiRDB Version 9 Installation and Design Guide

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

15.1.4 Formulas for shared memory used by a single server

This subsection lists and describes the formulas used for calculating the shared memory used by a HiRDB single server configuration.

For 32-bit mode (KB):
Formula 1 + [Figure]{([Figure](40 + (value obtained by adding Formulas 2 through 7 and Formula 9) + (6.5 [Figure] 1,024 [Figure] 1,024)) [Figure] 512[Figure] [Figure] 512)} [Figure] 1,024[Figure]

For 64-bit mode (KB):
Formula 1 + [Figure]{([Figure](72 + (value obtained by adding Formulas 2 through 9) + (6.5 [Figure] 1,024 [Figure] 1,024)) [Figure] 512[Figure] [Figure] 512)} [Figure] 1,024[Figure]

Notes on Formulas 1 to 10:
  • If Y is specified in the pd_rdarea_open_attribute_use or pd_lv_mirror_use operand, add Formula 3.
  • If commit is specified in either the pd_dbsync_point operand or the pd_system_dbsync_point operand, add Formula 4. The default for the pd_system_dbsync_point operand is commit.
    Otherwise, add Formula 7.
  • If the pd_inner_replica_control operand is specified, add Formula 5.
  • If the pd_dfw_awt_process operand is specified, add Formula 6.
  • If you omit the pd_sds_shmpool_size operand, the following value is set:
    For 32-bit mode:
    [Figure]{([Figure](40 + (value obtained by adding Formulas 2 through 7 9, 10)) [Figure] 512[Figure] [Figure] 512)} [Figure] 1,024[Figure]
    For 64-bit mode:
    [Figure]{([Figure](72 + (value obtained by adding Formulas 2 through 9, 10)) [Figure] 512[Figure] [Figure] 512)} [Figure] 1,024[Figure]
  • If you specify the pd_max_resident_rdarea_no operand, add Formula 8.
  • If the value of pd_max_temporary_object_no is 1 or greater, add Formula 9.
  • If the value of pd_max_tmp_table_rdarea_no is 1 or greater, add Formula 10.

The following table shows Formulas 1 through 10.

Formula Shared memory calculation formula
Formula 1 (KB)

[Figure] 32-bit mode

b [Figure] 1.3 + c + d + f + 1.6 + q + r + 4

+ { [ (a + 12) [Figure] 13] [Figure] 1.1 + [ (a + 62) [Figure] 63] + 3.7} [Figure] (e + 3) + 3.5

+ {
[Figure]([Figure](b [Figure]64)[Figure]) [Figure] (8 [Figure] 16)[Figure] [Figure] 4 [Figure] 4
+ 12 [Figure] {(b [Figure] 3) + 1 - mod (b [Figure] 3, 2)}
+ 8 [Figure] a [Figure] {(e + 3) [Figure] 2 + 1 + MAX (e [Figure] 10, 5)} + 32 + 20,000
+ [Figure]{(c [Figure] 8) + 7} [Figure] 64[Figure] [Figure] 8 + [Figure]{(f [Figure] 8) + 7} [Figure] 64[Figure] [Figure] 8
+ MAX {a [Figure] (e + 3), c [Figure] 8} [Figure] 104 + MAX {a [Figure] (e + 3), f [Figure] 8} [Figure] 24
+ [Figure]{(q [Figure] 4) + 7} [Figure] 64[Figure] [Figure] 8
+ [Figure]{[(r - (s [Figure] 592 + t [Figure] 916 + u [Figure] 172)) [Figure] 2] + 7} [Figure] 64[Figure] [Figure] 8
+ MAX {13 [Figure] (e + 3), q [Figure] 4} [Figure] 88
+ MAX {21 [Figure] (e + 3), [r - (s [Figure] 592 + t [Figure] 916 + u [Figure] 172)] [Figure] 2} [Figure] 60
+ 44 + 256 + 1,024 + 512#1
} [Figure] 1,024 + y + 7.5
+ [Figure]{248 [Figure] v [Figure] w + 47 [Figure] v + 72} [Figure] 1,024[Figure]
+ [Figure]{[Figure](28 + ([Figure](32 + (([Figure]g [Figure] 127[Figure] + 1) [Figure] 2,048 + 128)) [Figure] 32[Figure] [Figure] 32))
[Figure] 128[Figure] [Figure] 128
} [Figure] 1,024[Figure]
D
+ [Figure](Ei)
i=1
Add this if the pd_def_buf_control_area_assign operand is specified as INITIAL or if the operand is omitted.
+ {[(a + 12) [Figure] 13] [Figure] 1.1 + [(a + 62) [Figure] 63] + 3.7} [Figure] (e + 7)

[Figure] 64-bit mode

b [Figure] 1.3 + c + d + f + 1.6 + q + r + 5

+ { [ (a + 12) [Figure] 13] [Figure] 1.2 + [ (a + 62) [Figure] 63] [Figure] 1.5 + 4.1} [Figure] (e + 3) + 3.5

+ {
[Figure]([Figure](b [Figure] 64)[Figure]) [Figure] (8 [Figure] 16)[Figure] [Figure] 4 [Figure] 4 + 12
[Figure] {(b [Figure] 3) + 1 - mod (b [Figure] 3, 2)}
+ 8 [Figure] a [Figure] {(e + 3) [Figure] 2 + 1 + MAX (e [Figure] 10, 5)} + 48 + 20,000
+ [Figure]{(c [Figure] 8) + 7} [Figure] 64[Figure] [Figure] 8 + [Figure]{(f [Figure] 8) + 7} [Figure] 64[Figure] [Figure] 8
+ MAX {a [Figure] (e + 3),c [Figure] 8} [Figure] 104 + MAX {a [Figure] (e + 3), f [Figure] 8} [Figure] 40
+ [Figure]{(q [Figure] 4) + 7} [Figure] 64[Figure] [Figure] 8
+ [Figure]{[(r - (s [Figure] 600 + t [Figure] 936 + u [Figure] 182)) [Figure] 2] + 7} [Figure] 64[Figure] [Figure] 8
+ MAX {13 [Figure] (e + 3), q [Figure] 4} [Figure] 104
+ MAX {21 [Figure] (e + 3), [r - (s [Figure] 600 + t [Figure] 936 + u [Figure] 184)] [Figure] 2} [Figure] 72
+ 72 + 256 + 1,536 + 512#1

} [Figure] 1,024 + y + 7.5
+ [Figure]{248 [Figure] v [Figure] w + 64 [Figure] v + 72} [Figure] 1,024[Figure]
+ [Figure]{[Figure](56 + ([Figure](56 + (([Figure]g [Figure] 127[Figure] + 1) [Figure] 2,048 + 128)) [Figure] 32[Figure] [Figure] 32))
[Figure] 128[Figure] [Figure] 128
} [Figure] 1,024
D
+ [Figure](Ei)
i=1
Add this if the pd_def_buf_control_area_assign operand is specified as INITIAL or if the operand is omitted.

+ {[(a + 12) [Figure] 13] [Figure] 1.2 + [(a + 62) [Figure] 63] [Figure] 1.5 + 4.1} [Figure] (e + 7)
Formula 2
(bytes)
[Figure] 32-bit mode
500 [Figure] 1,024
+ 5,072 [Figure] (e + 15) + ([Figure]372 [Figure] g [Figure] 16[Figure] [Figure] 16) + 48#1 [Figure] g + 432 [Figure] h
+ 112 [Figure] (p + 240)
+ 96 [Figure] x + 32 [Figure] j + 132 [Figure] {19 + (e + 3) [Figure] 3}
+ 48 [Figure] n + 48 [Figure] {(e + 3) [Figure] 2 + 1 + MAX(5, (e + 3) [Figure] 10)}
+ 68 [Figure] B + 152 [Figure] (A + 120) + 80 + 32 [Figure] g + 64#2 + 96#3 + 368#4
+ (([Figure]([Figure](g [Figure] 8)[Figure] + 3) [Figure] 4[Figure]) [Figure] 4) [Figure] j
[Figure] 64-bit mode
500 [Figure] 1,024
+ 9,416 [Figure] (e + 15) + ([Figure]472 [Figure] g [Figure] 16[Figure] [Figure] 16)
+ ([Figure]56#1 [Figure] g [Figure] 16[Figure] [Figure] 16) + 448 [Figure] h
+ ([Figure]136 [Figure] (p + 240) [Figure] 16[Figure] [Figure] 16)
+ 144 [Figure] x + 48 [Figure] j + 240 [Figure] {19 + (e + 3) [Figure] 3}
+ 64 [Figure] n + 96 [Figure] {(e + 3) [Figure] 2 + 1 + MAX(5, (e + 3) [Figure] 10)}
+ 68 [Figure] B + 184 [Figure] (A + 120) + 96 + 48 [Figure] g + 64#2 + 128#3 + 448#4
+ (([Figure]([Figure](g [Figure] 8)[Figure] + 7) [Figure] 8[Figure]) [Figure] 8) [Figure] j
Formula 3 (bytes) [Figure] 32-bit mode
{[([Figure]g [Figure] 8[Figure] [Figure] 4[Figure]) [Figure] 4] + 8} [Figure] {(e + 3) [Figure] 2 + 12}
[Figure] 64-bit mode
{[([Figure]g [Figure] 8[Figure] [Figure] 8[Figure]) [Figure] 8] + 8} [Figure] {(e + 3) [Figure] 2 + 12}
Formula 4 (bytes) [Figure] 32-bit mode
(32 + 16 [Figure] x) [Figure] (e [Figure] 2 + 7 + 1) + 16
[Figure] 64-bit mode
(48 + 32 [Figure] x) [Figure] (e [Figure] 2 + 7 + 1) + 16
Formula 5 (bytes) 56 [Figure] z + 16
Formula 6 (bytes) [Figure] 32-bit mode
72 + 52 [Figure] C + 68 [Figure] x
If you specify 1 in the pd_dbbuff_trace_level operand, add:
+ 320 [Figure] x
[Figure] 64-bit mode
96 + 56 [Figure] C + 72 [Figure] x
If you specify 1 in the pd_dbbuff_trace_level operand, add:

+ 640 [Figure] x
Formula 7 (bytes) [Figure] 32-bit mode
(32 + 16 [Figure] x) [Figure] 10 + 16
[Figure] 64-bit mode
(48 + 32 [Figure] x) [Figure] 10 + 16
Formula 8 (bytes) 16 + 112 + (48 + 48 [Figure] G) + (48 + 32 [Figure] H)
Formula 9
(bytes)
16 + 80 [Figure] I
Formula 10
(bytes)
[Figure](112 + (28 + J [Figure] 52)) [Figure] 8[Figure] [Figure] 8

a: Value of pd_max_access_tables operand

b: Value of pd_sql_object_cache_size operand

c: Value of pd_table_def_cache_size operand

d: Value of pd_auth_cache_size operand

e: Value of pd_max_users operand

f: Value of pd_view_def_cache_size operand

g: Value of pd_max_rdarea_no operand

h: Value of pd_max_file_no operand

j: Number of global buffers for indexes
If Y is specified in the pd_dbbuff_modify operand, add the pd_max_add_dbbuff_no operand value to the number of pdbuffer commands that have been specified.

n: Value of pd_lck_until_disconnect_cnt operand

p: Value of pd_assurance_index_no operand

q: Value of pd_type_def_cache_size operand

r: Value of pd_routine_def_cache_size operand

s: Number of plug-ins installed

t: Total number of plug-in functions used with DML#5

u: Total number of parameters for the plug-in functions used with DML#5

v: Value of pd_max_list_users operand

w: Value of pd_max_list_count operand

x: Total number of global buffers (number specified in the pdbuffer operand)
If Y is specified in the pd_dbbuff_modify operand, add the pd_max_add_dbbuff_no operand value to the number of pdbuffer commands that have been specified.

y: Value of pd_registry_cache_size operand

z: Value of the pd_inner_replica_control operand

A: Value of the pd_assurance_table_no operand

B: Maximum number of transactions in the server (2 [Figure] e + 7)

C: Value of the pd_dfw_awt_process operand

D: Total number of specified pdplgprm operands

Ei: Size of the shared memory specified by the ith pdplgprm operand.

G: Value of the pd_max_resident_rdarea_no operand

H: Value of the pd_max_resident_rdarea_shm_no operand

I: Value of the pd_max_temporary_object_no operand

J: Value of the pd_max_tmp_table_rdarea_no operand

T: Number of tables that will use the free space reusage facility

#1: Add this value if neither the pd_max_list_users nor pd_max_list_count operand is 0.

#2: Add this value if at least 1 is specified in the pd_max_ard_process operand.

#3: Add this value if at least 1 is specified in the pd_max_reflect_process_count operand.

#4: Add this value if the facility for predicting reorganization time is used.

#5: You can use the following SQL statement to obtain the total number of plug-in functions and the total number of parameters for the plug-in functions used with DML:
SELECT COUNT(*),SUM(N_PARAM) FROM MASTER.SQL_PLUGIN_ROUTINES
WHERE PLUGIN_NAME  =  'plug-in-name'
AND (TIMING_DESCRIPTOR  =  'ADT_FUNCTION'
    OR TIMING_DESCRIPTOR IS NULL
    OR TIMING_DESCRIPTOR  =  'BEFORE_INSERT'
    OR TIMING_DESCRIPTOR  =  'AFTER_INSERT'
    OR TIMING_DESCRIPTOR  =  'BEFORE_UPDATE'
    OR TIMING_DESCRIPTOR  =  'AFTER_UPDATE'
    OR TIMING_DESCRIPTOR  =  'BEFORE_DELETE'
    OR TIMING_DESCRIPTOR  =  'AFTER_DELETE'
    OR TIMING_DESCRIPTOR  =  'BEFORE_PURGE_TABLE'
    OR TIMING_DESCRIPTOR  =  'AFTER_PURGE_TABLE'
    OR TIMING_DESCRIPTOR  =  'INDEX_SEARCH'
    OR TIMING_DESCRIPTOR  =  'INDEX_COUNT'
    OR TIMING_DESCRIPTOR  =  'INDEX_INSERT'
    OR TIMING_DESCRIPTOR  =  'INDEX_BEFORE_UPDATE'
    OR TIMING_DESCRIPTOR  =  'INDEX_AFTER_UPDATE'
    OR TIMING_DESCRIPTOR  =  'INDEX_DELETE'
    OR TIMING_DESCRIPTOR  =  'PURGE_INDEX'
    OR TIMING_DESCRIPTOR  =  'INDEX_MAINTENANCE_DEFERRED'
    OR TIMING_DESCRIPTOR  =  'BEFORE_INSERT_DC'
    OR TIMING_DESCRIPTOR  =  'BEFORE_UPDATE_DC'
    OR TIMING_DESCRIPTOR  =  'BEFORE_DATA_CHECK'
    OR TIMING_DESCRIPTOR  =  'AFTER_DATA_CHECK')