[erlang-questions] "Erlang plus BDB: Disrupting the Conventional Web Wisdom"

Chris Newcombe <>
Thu Oct 11 21:10:14 CEST 2007

On 10/11/07, t ty <> wrote:
> A good start is "Evaluation of Database Management Systems for Erlang"
> by Emil Hellman. See
> http://www.erlang-consulting.com/aboutus/erlangarticles.html

Unfortunately that report is seriously out of date, with respect to
Erlang and BDB anyway.  It talks about EDTK 1.0 which supported a
small part of the BDB v4.0 API (not even including transactions), and
that version of BDB is now more than 5 years old.  It also contains
some inaccuracies about even that version of BDB.

The current EDTK (v1.5.1) supports almost the entire BDB v4.5.20 API,
including transactions, replication.  It also has a number of new
convienience layers (e.g. easier configuration of BDB and helpers for
replication), and has been extensively stress tested and performance
tested in an industrial setting over several months.

As to inaccuracies:

e.g. In the 'safety' section it says:

  "For Berkeley DB, logging of operations is left as a responsibility
for the application. "

... which is simply incorrect (unless it means setting the single flag
that enables that feature, as transaction support is optional).

It then says:

  "Berkeley DB was considered slightly worse than the others because
of its reliance on the applications using it."

This may be fair, because Berkeley DB is an embedded database, i.e.
linked into your application (and when used via the EDTK defaults,
dyamically linked in by the Erlang VM process).  i.e. There is no ODBC
driver in the mix -- BDB is exposed as an Erlang port.  This gives big
performance advantages, but the application does need to obey some
rules, such as calling the 'recovery' API at startup.

Fortunately the new version of EDTK does all that for you.  See:



More information about the erlang-questions mailing list