Everybody at some stage has probably had to do this or at least is planning to in the near future, growing Vaults from time to time will require purging but there are a few aspects of purge that might not be completely clear and worth revisiting, I know I still get asked about this quite a bit.
The first thing to know is that a couple of years back we made some important changes to reduce Vault filestore sizes, by simply not creating duplicating identical files in cases where a version change would result in this (think changing a UDP – which does not modify the actual physical file) we are able to have a big impact on disk space. So even when you do purge this may limit the actual disk space gain.
Secondly, purging immediately removes all the versions from your database but the filestore itself does not reduce in size until the next scheduled filestore maintenance is run (usually configured to run daily late at night). So don't panic when you will not see any immediate changes to the filestore size on disk or when you see numerous mentions to vacuum cleaning in your logs (that's Vault removing the unwanted files)
In terms of what we are actually purging there are a few more important points – purging can never be allowed to result in broken references (or in other words remove files that are required to open another file), so regardless of what settings you select on purge your Vault, any required files are retained. A simple example of this is V4 of a part file is used in V2 of an assembly – even when we purge all but last 3 we technically need V4 of the part to open the assembly – so it gets a reprieve, for now….
And that's a good point – you are prompted when you purge to set the number of files you want to keep (noting you can never purge the latest), how old the files should be, or based on comments what files you want to keep. The combination of the above conditions and these settings results in a list of file versions eligible to be purged. It may mean that you end up keeping more files than you wanted to, but this is the nature of maintaining usable data.
One thing you may not realise though, is that one we introduce lifecycle states, this takes precedence over your purge settings which are essentially ignored.
You will notice when you set up your lifecycle states there is a Control tab where you can set what file versions should be kept – either all versions in that state, first and last versions, the last version in that state or none.
Its probably safe enough to purge all Work in Progress files and maybe Quick Change, but you would want to keep at least last version of Released and Obsolete files.
When you now purge your Vault the list of eligible files (and items in this new merged lifecycle world) is constructed from the lifecycle rule for that version, NOT the actual purge command settings – confused? See the chart below which highlights what files will be purged in a lifecycle scheme scenario:
So purge away in good faith that files will not be lost, but hopefully a bit the wiser as to what it is you are actually removing.
– Allan