Database Vacuuming

With updated and new data blocks continually being added to the end of the pack file, the question arises on how to keep the database within a reasonable size on the disk. The vacuuming process moves information from sparsely populated pack files to the current pack file. When the previous pack files are completely vacuumed and no longer needed for recovery purposes, the empty pack files are deleted. The default threshold for vacuuming is when the currently used space in the pack file drops to 20% used. This percentage can be adjusted in the database option settings. See the vacuum_percentage option in the Database Configuration Options section.

When the maximum size of the database files reaches the limit, vacuuming the oldest pack files is forced to allow completely vacuumed pack files in the middle of the sequence to be removed. The default maximum database size is 20 GiB and can be set using the db_size option in the Database Configuration Options section.

A pack file can be removed only when it is vacuumed and is the oldest pack file in the directory.