BerkeleyDB has had a long history as a high-performance, embeddable database engine. The Java edition of this database is written entirely in Java, making it ideal for embedding it into other Java applications and devices. BerkeleyDB Java supports a simple annotation-based API for storing and retrieving objects, and offers a high-performance, transactional store that can extend to several terabytes of data. Oracle acquired BerkeleyDB along with its purchase of Sleepcat Software in 2005.
According to Oracle, a key use-case for BerkeleyDB Java are high-performance applications, as well as applications with very complex object models. Much of the high-performance aspects of BerkeleyDB Java come from the fact that the database stores objects in their native Java form, and does not "flatten" objects to relational tables. In addition, the database has a sophisticated indexing mechanism that facilitates fast retrieval based on object keys.
A closely-related cousin of BerkeleyDB Java is BerkeleyDB XML, a native XML object database, a new version of which was also recently made available. While the Java database is implemented in Java, BerkeleyDB XML is a layer on top of the native BerkeleyDB database. And while the Java database provides key-based object lookup, BerkeleyDB XML offers full support for the XQuery standard. The latest BerkeleyDB XML release also implements the recent XQuery Update standard. Since any property of an XML document can be indexed by BerkeleyDB XML, ad-hoc queries over large document extents are performed very fast, making this database one of the more efficient ways to extract information from collections of large XML documents.
New features in BerkeleyDB Java include:
Scalability: support for millions of databases, and improved performance for very large memory caches (many GB) and very large data sets (multiple TB)