Ralph Strauch wrote:Are there advantages to doing occasional compactions or does qrecall work just as well with a fragmented archive, so long as there's plenty of free space on the disk?
In general, yes. It won't be as efficient as it could be, but if you have plenty of free disk space then it probably doesn't matter.
Compaction takes a long time, and there doesn't seem much point in doing it unless there are significant advantages.
The most significant benefit is that is keeps your archive compact. This makes verify and repair operations proportionally faster, and there's a slight improvement in performance overall when capturing and merging layers.
Note that a compact action won't completely compact the archive unless there's at least 4% of unused space in the archive to recover. You can increase this threshold by changing the
QRCompactFreeSpaceRatioMinimum advanced setting. So you can prevent the archive from doing a time-consuming compaction unless there's at least 10%, 15%, or even 25% of the archive space that's unused.
I don't think I've ever seen an entry for "free" in the archive inspector. All it seems to show is "undetermined."
Following a merge, QRecall don't actually know how much space in the archive is "free" until it performs a process known as garbage collection. This is one of the tasks of the compact action. After a compact, the "free" space value will have a known quantity (until the next merge).
In earlier versions of QRecall, garbage collection was performed at the beginning of every capture. But this turned out to be awkward and too time consuming, so now it's only done by the compact action unless you set the
QRCaptureFreeSpaceSweep advanced setting to
true.
Yet the status window always shows an amount of "unused space" that seems to get updated regularly.
The status window remembers the last known value until it's updated again.
Are "free" and "unused space" something different, or is the inspector just not picking up the value?
No, it's more like there's a mismatch in terminology. The inspector uses "free" and the status window uses "unused", but it's the same value.