Subject Re: [firebird-support] Why "cooperative" garbage collection?
Author Dmitry Yemanov
Martijn Tonies wrote:
>
>> The hybrid method in Firebird 2 should have the best
>> characteristics of both cooperative garbage collection and the
>> garbage collect thread. If there turn out to be cases where it
>> doesn't, you don't have to build a special kit to change modes.
>
> But why? When does it use the background thread and when does
> it use cooperative garbage collection?

The mixed mode performs two-phase GC: it removes the de-facto garbage
cooperatively and notifies the GC thread about the potential garbage
(which can be garbage collected later e.g. when the interested
transactions complete).

You may want the background only behavior if you need minimal response
times. The cooperative only behavior doesn't provide any benefits itself
except the compatibility between SS and CS (so it could be used in
various comparison benchmarks etc).


Dmitry