Subject | RE: [firebird-support] Housekeeping - Super Server? |
---|---|
Author | Helen Borrie |
Post date | 2005-03-13T23:43:35Z |
At 09:12 AM 14/03/2005 +1100, Roy Holme wrote:
when you don't want a sweep. But this doesn't disable garbage collection,
which is a separate process.
(by having a sweep interval > 0). If your applications manage transactions
well, auto-sweeping will never occur.
the threshold that would cause a sweep to kick off, then a sweep is never
kicked off.
Background GC, on the other hand, runs in a background thread whenever the
opportunity arises. Don't confuse it with sweep. Apps that keep
transactions running for long periods will cause large build-ups of garbage
that the GC thread can't touch. Under those conditions, the sweep
threshold will be reached periodically and sweep will kick in and try to
clean up. How long it takes to get to this point is determined by how much
it was able to clean up last time. Neither sweep nor GC will clean up
garbage from transactions that are still active.
Classic is different to SS with regard to GC. Classic uses the
"co-operative GC" approach: the next SELECT on a row that has garbage
available will take the "hit" of garbage-collecting what the earlier
transaction left behind.
./hb
> > In classic, one might want to set housekeeping to 0 to prevent aYou would set the Sweep Interval to zero to prevent sweeps from happening
> > cleanup from happening when you don't want to deal with a slow down.
when you don't want a sweep. But this doesn't disable garbage collection,
which is a separate process.
> > Of course, one runs gfix -sweep to force one at a good time.Recommended regular housekeeping, anyway, even if auto-sweeping is enabled
(by having a sweep interval > 0). If your applications manage transactions
well, auto-sweeping will never occur.
> >A "heavy" sweep will slow things down. But, if your "gap" never reaches
> > If the super server has a special garbage collection thread going
> > anyway, does this philosophy make sense anymore. The last thing one
> > wants to happen is for the database to freeze up when you are going
> > through a very active period.
the threshold that would cause a sweep to kick off, then a sweep is never
kicked off.
Background GC, on the other hand, runs in a background thread whenever the
opportunity arises. Don't confuse it with sweep. Apps that keep
transactions running for long periods will cause large build-ups of garbage
that the GC thread can't touch. Under those conditions, the sweep
threshold will be reached periodically and sweep will kick in and try to
clean up. How long it takes to get to this point is determined by how much
it was able to clean up last time. Neither sweep nor GC will clean up
garbage from transactions that are still active.
>Alan McDonald wrote:Talking about sweeping only here.
>it's the same with SS - set sweep interval to 0 and do it yourself
Classic is different to SS with regard to GC. Classic uses the
"co-operative GC" approach: the next SELECT on a row that has garbage
available will take the "hit" of garbage-collecting what the earlier
transaction left behind.
./hb