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