Feedback
 
Did this article resolve your question/issue?

   

Your feedback is appreciated.

Please tell us how we can make this article more useful. Please provide us a way to contact you, should we need clarification on the feedback provided or if you need further assistance.

Characters Remaining: 1025

 


Article

Multi-threaded binary dump uses less threads for the dump than the -threadnum specified.

« Go Back

Information

 
Article Number000012867
EnvironmentProduct: OpenEdge
Version: 10.1x, 10.2x, 11.x
OS: All supported platforms
Question/Problem Description
Multi-threaded binary dump utility, uses less threads for the dump than the -threadnum specified.
Some tables use all the threads specified by -threadnum for the binary dump process.
Some large tables only use one thread when threadnum is specified for a threaded binary dump.
Some tables only use less threads than the threadnum specified for a threaded binary dump.
The dumplist file is not produced when one thread produces only one .bd dump file.
Steps to Reproduce
Clarifying Information
Tables with few records use less threads.
Tables with no records use less threads
Tables with duplicate keys on the index used for the binary dump use less threads.

Server has enough operational CPU's to match the -threadnum value used.
Single thread mode has not been specified (-thread 0)
Binary dump completes without error.
Error Message
Defect/Enhancement Number
Cause
The Multi-threaded feature on binary dump is introduced in OpenEdge 10.1A. 

A binary dump uses threaded options by default: The default -threadnum value is the number of system CPUs and -thread 1 is turned on.
When a binary dump is run without threading (-thread 0) or when a threaded binary dump determines to use single thread mode for the binary dump, the dumplist file is not produced when only one .bd dump file results in version pre OpenEdge 11.5.

Even when a threaded dump is specified, multi threads will not necessarily be started to dump the table.  The algorithm also checks on the following before permitting a multi-threaded binary dump:

a.)  Enterprise Database License

b.)  More than one CPU, which defaults the -threadnum to the number of operational CPU's unless otherwise specified.

c.)  Threaded binary dumps are created based on the index tree, not on the table size. The number of entries in the root block of the index used (Primary index by default or that specified by the -index parameter).  The threaded-dump algorithm splits the root block logically into up to (-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.

d.) A special case that affects the number of threads used: if there are duplicate keys in the root block, the duplicate keys are ignored when building the brackets for the number of threads to be used.
Resolution
This is expected behaviour, the threaded binary dump is working as designed.

A different index may be used to perform the dump if the root of the index contains more entries, but it cannot be predicted how many threads the dump will use. Refer to Article 000061242, How to estimate the number of binary dump threads?   
Workaround
Notes
Attachment 
Last Modified Date6/8/2017 10:52 AM