It never fails (bsddb retirement in 2.3)

Paul Rubin http
Fri May 2 15:59:00 EDT 2003


"Martin v. Löwis" <martin at v.loewis.de> writes:
> You are certainly entitled to all kinds of feelings. However, I'd like
> you to consider the bigger picture as well (bsddb is a standard package
> only on minority platforms, like OSF/1, and it is a seriously broken
> library)

What's a minority platform?  Anything that isn't Windows?  

I was using Redhat 7.2 which I thought was a pretty common platform.
I didn't import bsddb, I imported anydbm and got a bsd database.
I had purposely used anydbm expecting I'd get some reasonable default.

> Backwards compatibility has been taken into account when
> making this change. The API of the new library is meant to be fully
> backwards compatible to the old API. It requires a new library, yes,
> but the module that wraps the old library has been preserved for
> precisely the situation you are encountering.

I don't think "compatible API" is a suitable definition of backwards
compatibility when it comes to a database.  The database format itself
also has to stay compatible.  It's like the pickle library.  The
pickle format has weaknesses, but programs that use pickles are
supposed to interoperate, so updating the format has to require
passing a flag to the API, at least allowing the old format to keep
being used.  A database can't be migrated to a new format without some
hassle and a service interruption.  That's not so bad if planned,
however, as mentioned, the expectation of backwards compatibility can
make the format change come as a surprise.  In my case I simply woke
up one morning and found that the version of Python that I was running
had changed from 1.5.2 to 2.2 and my script was crashing as a result.

> No. The old library has too many bugs.

What kind of bugs, at least in the one-reader, one-writer case?




More information about the Python-list mailing list