Martijn Tonies wrote:

What is the purpose of the cooperative garbage collection in Fb 2.0?

Ann W. Harrison answers:

It was intuitively obvious to the developers of InterBase 6.0 that a background garbage collect thread would be faster than cooperative garbage collection. Unfortunately, under load, the garbage collect thread failed to get enough cycles to do its work and the whole system could grind to a halt. IBPhoenix provided special kits that disabled the garbage collect thread and enabled cooperative garbage collection to fix customers' performance problems.

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.

Dmitry Yemanov answers:

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).

Like this post? Share on: TwitterFacebookEmail

Related Articles


Firebird Community



Gems from Firebird Support list