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.