In order to minimise the usage of disk storage, data objects may be packed. Several packing mechanisms are provided - one that is particularly useful is bit packing. In this case, and provided that all elements of a data object must be of the same type (integer or real), HEPDB searches for the optimum bit-length that permits the majority of the data elements to be packed. The remaining elements are stored using two words each. Another packing algorithm, activated at user's request, stores only the data elements whose absolute values are greater than a predefined number. Packing and unpacking are automatic and not seen by the user, who always deals with unpacked data in memory. Furthermore, the user is in any case given the possibility to inhibit the packing.
In order to store data as compactly as possible, one may also store only the differences from another object in the same directory. Like packing, the storing of difference records is completely automatic and transparent to the user.
Further information on packing and the storing of difference records is given in the Appendix.