Tuesday, October 14, 2008
The Berkeley DB Book
Product Description
The Berkeley DB Book is a practical guide to the intricacies of the Berkeley DB. This book covers in-depth the complex design issues that are mostly only touched on in terse footnotes within the dense Berkeley DB reference manual. It explains the technology at a higher level and also covers the internals, providing generous code and design examples.
In this book, you will get to see a developers perspective on intriguing design issues in Berkeley DB�based applications, and you will be able to choose design options for specific conditions. Also included is a special look at fault tolerance and high-availability frameworks. Berkeley DB is becoming the database of choice for large-scale applications like search engines and high-traffic web sites.
Product Details
* Amazon Sales Rank: #314503 in Books
* Published on: 2007-10-08
* Original language: English
* Number of items: 1
* Binding: Hardcover
* 442 pages
Editorial Reviews
About the Author
Himanshu Yadava is a software developer and provides software design and development consultancy through his company BitSeer Inc. His areas of interest include embedded databases, fault tolerance and monitoring/management frameworks. Previously he has worked in various technical roles at Orcale, Kineto Wireless, ProactiveNet (now a part of BMC software) and Infosys Technologies. He maintains a Berkeley DB information page on his company's website (http://www.bitseer.com).
Customer Reviews
Excellent (but it would be better in C)4
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, 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.
Good overview of BerkeleyDB4
I bought this book to prepare for a project using BerkelyDB. I read the product documentation a few times, but wanted to make sure I hadn't overlooked anything. My interests are rather specialized, I did not pay any attention to replication, for example. I did not read this book cover to cover, I spent an intensive few days trying to resolve some specific questions.
Why care about BerkelyDB?
Berkely DB is an important alternative in cases where a SQL database is not a good solution due to cost, data volumes, administration support, or processing model. BerkelyDB is better described as a set of data store libraries for an in-process, but multi threaded and multi process transactional data store. BerkelyDB is a very mature open source product, with a long history of production deployments.
Why care about this book?
It is the only one written in the last 7 years on this topic, so if it is any good you have to get it. The (free) product documentation is quite good, but rather scattered. As the author says in the introduction, putting it together in one document, with additional commentary is worthwhile.
What I liked?
The text is clean, the layout is well organized. I found it easy to jump to the areas I was interested in. In the end I answered my questions and was satisfied with the content.
What I didn't like?
The author made several decisions that do not fit my particular needs. First, the book is written using C++ examples, and I work in Java these days. That decision is certainly defensible, but using C++ required (for the sake of brevity) using some non standard libraries for things like threading. With Java this is not needed. Secondly, the examples tend to show programs in full. For my purposes I really only care about the specific BDB calls under discussion, the complete examples just take up extra space. My greatest disappointment with the book is that it did not go into architectural issues to any great depth. This is unfortunate, since the data model for BDB is radically different than the relational model.
Labels:
Database,
Himanshu Yadava