Berkeley DB's Direct Persistence Layer (DPL) provides Java applications the data robustness and reliability guarantees with the programming simplicity of Plain Old Java Objects (POJOs). A few simple source code annotations transform a Java program from one that manages transient in-memory data to one that manages transactionally consistent and reliable persistent data. Using the DPL is similar to using the Java Persistence API (JPA) in that it facilitates the use of transactions, selection and traversal in complex datasets, maintenance of relationship cardinality, and reliability and persistence in the face of application, system, or hardware failure.
The DPL provides a simpler and more efficient data management technique than conventional object database or object-relational mappings. Rather than marshalling to and from relational tables, DPL provides direct, native access to Java objects. There is no SQL overhead, no client/server communication, no redundant caching, and no administrative overhead. Instead of overhead, DPL provides support for primary and secondary indices, composite keys, keys based on complex classes, lazy index population, and key prefixing. The result is faster storage, lower CPU and memory requirements, and a more efficient development process. Berkeley DB provides fast ad hoc access to Java objects in a reliable and scalable, efficient, and easy to manage package.