Berkeley DB Java Edition 3.1.0 review

by on

Berkeley DB Java Edition is a high performance, transactional storage engine written entirely in Java

License: Open Software License
File size: 4593K
Developer: Oracle
0 stars award from

Berkeley DB Java Edition is a high performance, transactional storage engine written entirely in Java. Like the highly successful Berkeley DB product, Berkeley DB Java Edition executes in the address space of the application, without the overhead of client/server communication. Berkeley DB Java Edition stores data in the application's native format, so no runtime data translation is required.

Berkeley DB Java Edition supports full ACID transactions and recovery. It provides an easy-to-use, programmatic interface, allowing developers to store and retrieve information quickly, simply and reliably.

Berkeley DB Java Edition is designed to offer the same benefits of Enterprise Java Beans 3.0 (EJB3) persistence without the need to translate objects into tables.

Relational databases are the most sophisticated tool available to the developer for data storage and analysis. Most persisted object data is never analyzed using ad-hoc SQL queries; it is usually simply retrieved and reconstituted as Java objects. The overhead of using a sophisticated analytical storage engine is wasted on this basic task of object retrieval. The full analytical power of the relational model is not required to efficiently persist Java objects. In many cases, it is unnecessary overhead. In contrast, Berkeley DB Java Edition does not have the overhead of an ad-hoc query language like SQL, and so does not incur this penalty.

The result is faster storage, lower CPU and memory requirements, and a more efficient development process. Despite the lack of an ad-hoc query language, Berkeley DB Java Edition can access Java objects in an ad-hoc manner, and it does provide transactional data storage and indexed retrieval, as you would expect from any database. The difference is that it does this in a small, efficient, and easy-to-manage package. Using the Direct Persistence Layer (DPL), Java developers can quickly and easily persist and retrieve inter-related groups of Java objects with confidence, speed, and a fraction of the complexity and overhead of a comparable ORM solution.

Berkeley DB Java Edition was designed from the ground up in Java. It takes full advantage of the Java environment. The API provides a Java Collections-style interface, as well as a programmatic interface similar to the Berkeley DB API. The architecture of Berkeley DB Java Edition supports high performance and concurrency for both read-intensive and write-intensive workloads.

Berkeley DB Java Edition is different from all other Java databases available today. Berkeley DB Java Edition is not a relational engine built in Java. It is a Berkeley DB-style embedded store, with an interface designed for programmers, not DBAs. The architecture is based on a log-based, no-overwrite storage system, enabling high concurrency and speed while providing ACID transactions and record-level locking. Berkeley DB Java Edition efficiently caches most commonly used data in memory, without exceeding application-specified limits. In this way Berkeley DB Java Edition works with an application to use available JVM resources while providing access to very large data sets.

J2EE is a central part of many enterprise deployments of Java. Berkeley DB Java Edition fits into the J2EE architecture by implementing three key APIs within J2EE. At its core, Berkeley DB Java Edition is a transactional database. Within a J2EE application server, many different subsystems must coordinate and work together in a transactional manner. By implementing the Java Transaction API (JTA), Berkeley DB Java Edition functions as a managed transactional resource within the application server. Berkeley DB Java Edition also implements the J2EE Connector Architecture (JCA) to ease integration into application servers.

Finally, once integrated and performing transactional operations, most applications will require some ability to manage a service. Berkeley DB Java Edition exports information and services using the Java Management Extensions (JMX). In concert JTA, JCA and JMX allow Berkeley DB Java Edition to operate to its fullest and in a predictable manner in J2EE-based solutions.
Berkeley DB Java Edition provides robust storage services for any Java application requiring high performance, transactional integrity and recoverability.

Here are some key features of "Berkeley DB Java Edition":
Data Storage
Berkeley DB Java Edition stores data quickly and easily without much of the overhead found in other databases. Berkeley DB Java Edition is a single JAR file that runs in the same JVM as your application, so there is no remote server. A local cache keeps the most active data in memory, avoiding costly disk access, and bounds the usage of JVM memory to a predictable amount.

Local, in-process data storage
Schema-neutral, application native data storage
Keyed and sequential data retrieval
Easy-to-use Java Collections API
Direct Persistence Layer (DPL) for accessing Java objects
Schema evolution of DPL classes
Single process, multi-threading model
Record level locking for high concurrency
Support for secondary indexes
In-memory, on disk or both
Configurable background cleaner threads re-organize data and optimize disk use

Berkeley DB Java Edition stores data reliably and ensures data integrity. In the event of a system failure, Berkeley DB Java Edition will recover transactional data and reset the system to a functional and consistent state from log and database information.

Full ACID compliance
Selectable isolation levels and durability guarantees, configurable on a per-transaction basis
Managed transactions using the Java Transaction API (JTA)
J2EE application server integration using J2EE Connector Architecture(JCA)
Auditing, monitoring, and administration using the Java Management Extensions (JMX)
Catastrophic and routine failure recovery modes
Timeout based deadlock detection
Hot and cold backups, log file compaction, and full database dumps

Berkeley DB Java Edition is highly portable, very flexible and easy to integrate. It was designed from day one as a pure Java product taking full advantage of the Java environment. As a single Java Archive (JAR) file, it runs within the JVM running your application. Berkeley DB Java Edition was designed to serve the large and growing Java community with a enterprise-grade, pure Java, data storage solution.

100% pure Java for portability and ease of development
Single JAR file - easy to install, runs in the same JVM as the application
Java 1.4.2 or later Standard Edition JVM required
Programmatic administration and management—zero human administration
API for routine administrative functions
Small footprint 820KB
Scalable to terabytes of data, millions of records
Source code, test suite included

What's New in This Release:
Direct Persistence Layer (DPL) is an EJB-style API using Java annotations to dramatically reduce development time, ease schema design, and provide indexed access to objects improving data access times.
Schema Evolution of DPL Classes: POJO data contained in Berkeley DB Java Edition using the DPL can now evolve gracefully from version to version.

Berkeley DB Java Edition 3.1.0 keywords