A
Free block is an Empty block that has been formatted and moved below the HWM but remains empty. It will be converted to either a Data (RM), Index or LOB block when needed.
- EMPTY - A block above the high water mark. Contains no information.
- FREE - Same as empty, but below the high water mark and formatted with header information.
- INDEX - A block containing index key information
- RM - A block which contains record or blob/clob data information.
Every database Storage Area has a
High Water Mark (HWM).
A database block starts out as an EMPTY block above the High Water Mark.
Once the high water mark (HWM) goes above the block, it gets converted to a FREE block and is put on the FREE chain. It won't be on the free chain for long; the reason the high water mark moved was because the free chain was exhausted. A FREE block can then become either an INDEX block or a RM (data) block.
- Once a database block is formatted as a record block, it will remain a record block for the life of the database and its deleted entries will be reused as new records for any table's records that are added.
- Once a database block is formatted as an index block, when all the entries in a block are deleted, that block will be converted back to a Free block (technically first added to the Index Delete Chain then a Free Block). The Free Block is then available as a record block or an index block again as space is needed.
The above discussion applies to Type I Storage Areas. With the introduction of Type II Storage Areas in OpenEdge 10, while the terminology remains, the behavior or use and re-use changes. Refer to Article
VST's to monitor space in a Type II Storage Area?