Berkeley DB (BDB) has certainly grown up over the years,
from a simple key/value database to a key/value database with transactional
capabilities, replication and more. I read The Berkeley DB Book by
Himanshu Yadava (Apress), and I was fascinated. The book is very well
written; it is always clear, and the author discusses all programming facets
of BDB and, where appropriate, compares Berkeley DB to relational database
systems, which is a great help if you are used to the latter. The book is for
programmers, and as such, it has a ton of code, which is great. The author
writes “Using just C in my code examples would have addressed the largest
subsection of programmers”, and I agree: I was a bit disappointed that coding
is mainly in C++, but chapter 12 shows you the C API (and if you want Java,
its API is discussed in chapter 11). From why and when to use Berkeley DB,
through building simple applications and an in-depth discussion of data
stores, the book goes on to advanced operations (cursors, duplicate keys,
joins, etc.) with plenty of good examples. In Chapter 8, replication; the
architecture and APIs provided by BDB, and as always, good code samples. Just
before discussing the BDB utilities (the command-line tools: db_stat,
db_checkpoint, etc), Himanshu Yadava goes into great detail building
distributed transactions and discussing strategies you can apply. Anyone
interested in data storage should read this book, if only to remember that
your multi-CPU, terabyte relational database is great, but that there are
still a myriad applications that would greatly profit from a smaller, light-
weight and blindingly fast database system like Berkeley DB. The Berkeley DB
Book belongs on your bookshelf.