Did this article resolve your question/issue?



What determines the number of entries in the root index block?

« Go Back


TitleWhat determines the number of entries in the root index block?
URL NameP141085
Article Number000136312
EnvironmentAll Supported Operating Systems
Progress/OpenEdge Versions
Question/Problem Description
What determines the number of entries in the root index block?
How is the root index block changed as new entries are made to the index?
Steps to Reproduce
Clarifying Information
Error Message
Defect/Enhancement Number
Initially the index is empty and only has the root block. As entries are added to the index, they get added to the root block until it becomes full.

Eventually, the root block has to be split and another level added to the index.

When that happens, the root block will get two entries that point to two leaf level blocks below it. Each leaf level block will then have some of the index entries.

As more index entries are added, one of the leaf level blocks will become full and will be split into two leaf level blocks. A new entry will be added to the root block to point to the new leaf level block.

As more entries are added to the index, more leaf level block splits will occur and new entries for them will be added to the root block. Eventually the root block will become full again and it will be split, adding a first interior level into the index.

Now there are three levels: the root block, two interior level blocks, and the leaf level blocks. The root block will once again have only a few entries which point to the two intermediate level blocks.

As more index entries are added, more block splits will occur and eventually the root block will become full again at which point another interior level will be added and the root block will end up with only a few entries.

So as entries are added, the root block goes from almost empty to full and then from full to almost empty.

Last Modified Date9/13/2015 5:23 AM
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.