[Date Prev][Date Next]
Re: back-bdb deadlocks
From: "Howard Chu" <firstname.lastname@example.org>
Date: Fri, 18 Jan 2002 04:27:21 -0800
I've tried several other approaches as well. One that helps is to
run the deadlock detector automatically, (dbenv->set_lk_detect)
instead of having a separate thread do periodic deadlock
checks. (When it deadlocks so frequently, resolving only once every
N seconds is much too slow.) In addition, it seems to help a lot
to configure with dbnosync. Not sure why, but the number of
deadlocks drops dramatically then. Also setting the deadlock
resolution to "youngest" instead of default ( =random ) helps. With
these settings the test usually finishes in under a minute.
Running the deadlock detector automatically is almost certainly what
you want. When I was doing similiar tests for Cyrus, this improved
performance and simplified coding, since I no longer had to schedule a
process or thread to do deadlock detection.
I also remember some tests (somewhat artificial perhaps) that showed
that "youngest" was faster.