On Thu, Jan 22, 2009 at 10:05, Paweł Sasin <hanni...@wp-sa.pl> wrote: >> >>> Yes, more specifically, it's mostly going to be updating the >> >>> "atime", or time of last access, records for tokens. This time is >> >>> used by the expiry process to drop the least recently used tokens. >> >>> >> >> >> >> What does SA do, if it can't r/w open bayes database? Will it skip >> >> BAYES checks or just tie it r/o ? >> >> >> >> (I notice ocasional missing BAYES in X-Spam headers) >> >> >> > Well, first let's be clear.. it's R/W opening the journal, not the >> > database itself. >> > >> > The main _toks and _seen files are only locked R/W if there's one >> > of the following going on: >> > learning without bayes_learn_to_journal set >> > a journal sync >> > token expiry is running >> > >> > As for write locks to the journal, if for some reason there's a >> > conflict, the update is just dropped with a warning. This isn't >> > incredibly likely unless your bayes is really busy, as journal >> > updates are pretty short in nature. >> >> on POSIX filesystems, this should be virtually impossible, since the >> file is opened for append with atomic writes. > > It is quite common on Solaris with 40+ working spamds and really high > traffic volume. Some time ago we had such situation. The server had 50% > idle while the spamds were striving to lock the journal (auto_learn and > auto_expire disabled) rather than going on to handle a next message. Ie > the machine was 50% idle but was unable to handle more messages and the > bottleneck was in journal updates.
You definitely mean the journal, right? not the bayes dbs? interesting to hear this, I haven't encountered it before... --j.