Wanting a pre-db4 bogofilter

Matthias Andree matthias.andree at gmx.de
Sat Feb 26 02:08:00 CET 2005


Jef Poskanzer <jef at acme.com> writes:

> Matthias Andree <matthias.andree at gmx.de>:
>>   non-transactional Berkeley DB does not guarantee anything after a
>>   crash, be that application or system crash.
>
> I don't think you're getting it.  Just because BDB requires that you use
> transactions before it will guarantee it won't trash the database does not
> mean that transactions are necessary.

Yes, it does, there are sufficient other reasons to justify using
transactions - training larger sets has been mentioned.

> All it means is that BDB does not
> provide the lighter-weight options we need.  Other databases do.

Which ones? If your answer is MySQL, I'm not interested.

>>                                               Note SIGINT or SIGHUP or
>>   SIGPIPE also "crash" bogofilter for this definition.
>
> Um...  Bogofilter doesn't catch signals and exit gracefully?  I just did
> some grepping in the code and it looks like you're right about this.

So what happens if we hit by a signal in the middle of a write,
potentially with the input being unavailable at the same time, or with a
signal that tells use we cannot make progress? Right, we need to roll
back. The code is there, in the transactional databases.

What happens if we're struck by a non-catchable signal, SIGKILL, of a
system shutting down? Right, we'll trash the database anyways.
Roll-back is in the transactional databases.

Once we use these, special signal handling is not needed, next time a
process starts it will roll back and that's it.

-- 
Matthias Andree
_______________________________________________
Bogofilter mailing list
Bogofilter at bogofilter.org
http://www.bogofilter.org/mailman/listinfo/bogofilter



More information about the Bogofilter mailing list