Consultor Eletrônico



Kbase P141020: Some tables, when using the multi-threaded binary dump utility, use only two threads in the dump eve
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   15/02/2010
Status: Verified

SYMPTOM(s):

Some tables, when using the multi-threaded binary dump utility, use only two threads in the dump even though -threadnum is set to 14

FACT(s) (Environment):

14 CPU's
Some tables use 14 threads in the binary dump process.
All Supported Operating Systems
OpenEdge 10.1A02 Service Pack

CAUSE:

This is expected behavior:
In a binary dump, the -threadnum option is used by default or as specified unless -thread 0 is used. Even though a threaded dump is specified, multiple threads will not always be used.

The binary dump process checks on the following to permit or not to permit a multi-threaded binary dump as well as to how many threads will be use:
1. Enterprise Database License
2. Number of CPU's
3. The number of entries in the root block of the index used:
The threaded-dump algorithm splits the root block logically up into a maximum of -threadnum parts, this will break the index tree in different ranges according to the keys in the root block, each thread works on a range.
If there is only one entry in the root block, it cannot be split so a non-threaded (regular) dump will be used.
If the number of root block entries are less than 14 you will not get 14 threads even though you set -threadnum to 14 in the dump and you have 14 operational CPU's. If -threadnum is not used in the command, the binary dump will split to a maximum of the number of CPU's.
4. if there are duplicate keys in the root block, the duplicate keys are ignored when building the brackets for the threads.


FIX:

The number of threads in a binary dump will not always equal the -threadnum setting nor the number of usable CPU's. This is expected behavior if the number of unique entries in the root index block, for the index being used in the dump, is fewer than either the number of CPU's or the -threadnum value assigned to the binary dump.