DB 4.8 introduces some performance enhancements, based on
the use of shared/exclusive latches instead of locks in some
areas of the internal buffer management code. This change will
affect how the DB_MPOOL
interface
handles dirty buffers.
Because of these changes,
DB_MPOOLFILE->get
will now
acquire an exclusive latch on the buffer if the
DB_MPOOL_DIRTY
or
DB_MPOOL_EDIT
flags are specified. This
could lead to an application deadlock if the application tries
to fetch the buffer again, without an intervening
DB_MPOOLFILE->put
call.
If your application uses the DB_MPOOL
interface, and especially the
DB_MPOOL_DIRTY
and
DB_MPOOL_EDIT
flags, you should review
your code to ensure that this behavior change does not cause
your application to deadlock.