Garbage Collection
Concurrent Garbage Collection
As with real objects in the image, unreachable virtual objects are removed by a garbage-collector.
The garbage-collector is unobtrusive, spreading its work over time, with optional visual progress indication, at a rate user-defined for each connection, so avoiding lengthy down-time with all users logged-off for batch garbage-collection. However to maximize transaction throughput, that option is also available simply by setting the rate to zero.
The garbage-collector may be run for a specified number of objects in the foreground once for each transaction commit, which makes the commit take longer, and/or continuously in the background thus utilizing time when users are in the data-entry phases of transactions. Since the garbage-collection rates are set individually for each connected image the load may be distributed as required, for example an otherwise little-used image/processor could be set to do most of the garbage-collection.
