views:

142

answers:

1

Many things depend on BDB. When I go to install the prepackaged software for my server, each piece of software seems to want a different version of BerkeleyDB. But it seems when I compile them I can specify a specific BDB version. (The software involved includes Postfix, OpenLDAP, and Cyrus IMAP.)

I use BDB in python projects occaisionally and I have no clue what impact the different versions have on the database file created.

I would like to know the difference between all the different Berkeley DB versions. It seems difficult to find information about the different versions and any API or file format differences, incompatibilities between versions, et cetera.

I know at minimum the following versions exist:

  • 1.85 (a historical version?)

  • 2.x

  • 3.x

  • 4.1

  • 4.2

  • 4.3

  • 4.4

  • 4.5

  • 4.6

  • 4.7

  • 4.8

  • 5.0

A: 

Hello.

Generally, for each release you can find a Change Log in the documentation that gets downloaded with the release. You can also find a history of past releases, as well as upgrade instructions in the Build, Installation and Upgrading Guide here. You can also find the list of historic change logs here.

As you have discovered, different packages link in different versions of the Berkeley DB library. Usually, the BDB library name includes the release number, so that multiple versions can co-exist on a system at the same time. Since Berkeley DB is used by so many different packages, it is not uncommon to have multiple versions of Berkeley DB on your system.

A quick summary of the major releases/features:

  • 1.85: Last UCB release (1994)
  • 2.0: Adds transactions, recovery (1997)
  • 3.0: Adds Queue AM, POSIX threads, subdatabases (1999)
  • 3.3: Adds Bulk get, Secondary Indices, Degree 1 isolation (Dirty Reads)
  • 4.0: Adds Replication (2001)
  • 4.1: Adds Encryption & Checksums
  • 4.2: Adds Java Collections API
  • 4.3: Adds Sequence numbers, Degree 2 isolation
  • 4.4: Adds Database compaction, in-memory databases, Peer-to-Peer HA
  • 4.5: Adds MVCC, Replication Mgr API
  • 4.6: Adds Cache priority per operation
  • 4.7: Adds Java DPL API, Architecture neutral HA
  • 4.8: Adds C# API, C++ STL API, SMP scalability improvements, Table partitioning, Bulk Insert & Delete, Foreign Keys
  • 5.0: Adds SQL API, JDBC/ODBC, Full Text and R-tree search (2010)

The interim releases add support for additional platforms and other features and enhancements.

I hope that this helps.

Regards,

Dave

David Segleau
Thank you. I got enough 404s from Oracle that I presumed they had "buried" BDB documentation.
Joe Koberg
I have also tended to think of BDB as simply a "key=value data store". From looking at the list above, it's pretty clear that it's a fairly advanced database engine.
Joe Koberg