Prior to OpenEdge 10.2B04, there is only one sort merge buffer for IDXBUILD. When that sort merge buffer fills, the contents are written to the file system.
In OpenEdge 10.2B04, the -TF Memory Usage Factor allows a percentage of system memory to be specified which can be allocated for merging sort buffers (-TM) during the index rebuild process when sorting index keys.
-TF <n>: Memory Usage Factor
- The default value of -TF is 50 (for 50%), when not explicitly specified.
- Setting -TF 0 results in the pre-10.2B04 behavior with one sort merge buffer
When the memory configuration limits for the process do not allow access to the memory requested by -TF, unpredictable failure may occur, such as being unable to spawn helper threads or other memory allocation failures. Such an error will cause index rebuild to terminate.
- 32-bit OpenEdge, is limited to around a maximum of 2GB due to 32-bit process limits.
- 64-bit OpenEdge, is limited by available memory on the machine bounded by the ulimit (on UNIX platforms). It is therefore advisable to set the ulimit values appropriately prior to running the index rebuild process.
-
How much memory does the -TF % parameter allocate when running IDXBUILD?
The initial 10.2B4 memory algorithm did not account for memory already being used by idxbuild when calculating the -TF percentage of available system memory. In 10.2B05 revised the -TF option to account the memory available to the currently running process based on:
- the lesser of the physical memory of the machine and the current process’s ulimit setting
- minus the amount of memory already being consumed by the process.
There are additionally other memory requirements since the 10.2B06 Index Rebuild Performance Improvements:
What are the new Index Rebuild parameters that were introduced in 10.2B06? IDXBUILD Memory estimates can be calculated as outlined in Article:
How much memory will the 10.2B07 11.2 enhanced IDXBUILD allocate initially ?