Too Long; Didn't Read
Java developers are familiar with the concept of garbage collection. When your application deletes or updates, a deleted record is not removed immediately nor is an existing record updated in its place. Instead, the deleted and updated records are marked as a dead tuples and will remain in storage. The database has its own garbage collection process called [vacuuming] - the plain one and the full one. The plain VACUUM works in parallel with your application workloads and doesn’t block your queries. The full VacUUM does reclaim the free space to the operating system, but it blocks the application.