Summary
BerkeleyDB Java is a small, embedded transactional storage engine that provides fast, hash-based access to indexed data. The latest BerkeleyDB release reduces the amount of disk I/O performed during data access, supports BigInteger, and provides many bug fixes.
Advertisement
While relational databases occupy a prominent role in the enterprise developer tools arsenal, the non-relational BerkeleyDB's has also been growing in niche applications. It is used at Google, for example, to provide low-level database declustering. Oracle purchased BerkeleyDB maker Sleepycat Software earlier this year, and has thrown its considerable R&D weight behind the product.
The latest 3.2.13 release provides options to further reduce I/O in several places in the database API. For example, it provides a deferred write mode in the direct persistence layer (DPL), which is an EJB-like API that uses annotations to help specify operations on data. The new configuration option allows the entire DPL store to use deferred write.
Another new feature is support for BigInteger both in the DPL API and in the actual data store:
The Values of this type are sorted in natural integer order by default, and BigInteger can be used as the type of a primary or secondary key field. DPL class evolution will automatically widen all other integer types (byte, char, short, int, long) to a BigInteger—in an existing class, changing from any of these types to BigInteger is a compatible type change.
In what situations would you consider using BerkeleyDB Java, or even its XML-flavored cousin, BerkeleyDB XML?