When records expand, or records are deleted, unused space is left in the file. In DSS version 7, that space may be reused, or reclaimed. The amount and location of the space is saved in the internal "reclaimation table", if it meets a minimum threshold.
When new writes occur, the reclaimation table is examined to see if there is an unused segment that can be used for that write. If so, the size needed is subtracted from that segment and that space is used for the write. If not, new space is allocated at the end of the file for the write.
This procedure keeps DSS file sizes smaller and operations more efficient. However, when the space from a deleted record is reused, that record cannot be recovered or "undeleted". If it is anticipated that records may deleted and then need to be recovered, space reclaimation may be turned off. In previous versions of DSS, the only way to remove unused space was through a "squeeze" command, which rebuilt the file.

The following HecDataManager methods are available:
Turn on / off for this session only (until file closed):
public int setSpaceReclaimation (boolean turnOn)
Turn on / off (set level) permanently for this file:
public int setSpaceReclaimationPerm (int reclaimLevel)
Where reclaimLevel is:
RECLAIM_NONE 1- Don't use space reclaimation
RECLAIM_EXCESS 2 - Reclaim space left over from extending records, etc. (can recover records)
RECLAIM_ALL 3 - Reclaim all unused space, including deleted records (cannot recover)