[Python-Dev] simple bsddb interface thread support 2.3.x vs 2.4

Gregory P. Smith greg at electricrain.com
Tue Nov 4 20:28:51 EST 2003


On Tue, Nov 04, 2003 at 07:44:12AM -0500, Barry Warsaw wrote:
> On Tue, 2003-11-04 at 03:12, Alex Martelli wrote:
> 
> > Generally, extending functionality (as opposed to: fixing bugs or clarifying 
> > docs) is not a goal for 2.3.* -- but I don't know if the fact that bsddb 
> > isn't thread-safe in 2.3 counts as "a bug", or rather as functionality 
> > deliberately kept limited, to avoid e.g such bugs as the one you've just 
> > removed, and other possibilities you mention:
> > 
> > >   - multithreaded bsddb use could deadlock depending on how it is used.
> > 
> > I think that just having the 2.3.* docs explicitly mention the lack of 
> > thread-safety might then perhaps be better than backporting the changes.
> 
> It's just the DB-API that's not thread-safe.  The full blown BerkeleyDB
> API (a.k.a. bsddb3) should be fine.
> 
> It sure is tempting to claim that the lack of DB-API thread-safety for
> BerkeleyDB is a bug and should be fixed for 2.3.*, but I think Greg
> should make the final determination.  If it isn't, then yes, the docs
> need to clearly state that's the case.

This was brought up before 2.3.2 was released.  The docs already state
this in a nice and obvious warning:

  http://www.python.org/doc/2.3.2/lib/module-bsddb.html

My vote it to leave bsddb in 2.3.2 as it is and not try to port the
thread support over from 2.4cvs.  It is not ready.

The bsddb module has never supported multithreaded use in any past version
of python.  If the simple bsddb/__init__.py interface can support it
for 2.4 thats great.  It should always be recommended that people use
the full bsddb.db when threads are involved.

If simple bsddb still has non-trivial to describe multithreaded deadlock
issues by the time a 2.4 release draws near I'll suggest pulling it out.
(before then i need to write a test case to prove that it does actually
have these problems)

-g




More information about the Python-Dev mailing list