eXtremeDB Java Native Interface (JNI) delivers the fastest embedded database in Java
Read an in-depth technical article about eXtremeDB JNI at Javalobby.com.
McObject provides a Java Native Interface (JNI) for the eXtremeDB embedded database, offering the fastest possible DBMS solution in Java. The JNI reduces development time and accelerates run-time performance in Java embedded systems (set-top box programming guides, etc.), and in real-time enterprise applications such as finance, e-commerce, and social networks, where eXtremeDB JNI dramatically outperforms traditional object caching software.
For organizations already using Java, eXtremeDB JNI delivers the speed of compiled C/C++ for performance-intensive data sorting, storage and retrieval tasks, with the convenience of using a familiar language. eXtremeDB’s breakthrough performance stems from a streamlined architecture that manages data entirely in main memory, eliminating file I/O, cache management and other overhead found in database systems that incorporate disk storage.
Figure 1. A Java application with eXtremeDB JNI benefits from native access to database functions running in compiled C.
“POJOs” and Simplified Programming
With eXtremeDB JNI, developers work with the real-time database entirely from within the Java programming language. There is no external database definition, and no requirement to compile a database schema.
Instead, the JNI uses Java’s reflection capability to discover database classes and their fields that are defined in the application, via class definition syntax (see Figures 2 and 3). This streamlines coding, and the developer’s experience is one of working with plain old Java objects (POJOs).
Optionally, the Java class definitions can be used to generate a schema that, in turn, can be processed by McObject’s schema compiler, so that C/C++ and Java programs can use the same database.
Figure 3. eXtremeDB’s Java API uses Java reflection to discover classes, their fields and other attributes at run-time.
Java Databases & Performance
What are the database options in Java when an application calls for the highest possible responsiveness?
SQL Relational DBMSs (usually w/ JDBC driver) — RDBMSs’ biggest drawback with Java is the “impedance mismatch” that occurs when going between relational structures and SQL (a set-oriented database access language), on one end, and the object-oriented Java language, on the other. The need to “map” between object and relational technologies consumes CPU cycles and hurts performance.
All-Java Databases — Embedded object-oriented databases written in Java deliver improved performance by eliminating impedance mismatch. However, as a language that is interpreted at run-time, Java’s performance can’t compete with compiled C and C++, and this limitation binds all-Java databases.
eXtremeDB JNI — eXtremeDB’s Java Native Interface uses the Java language (Java class definitions) to define the database schema. Since it relies on the programming language’s own syntax, there is (by definition) no impedance mismatch. Database sorting, retrieval and storage take place in fast, compiled C code rather than Java.
Importantly, eXtremeDB JNI also offers the many performance-enhancing features of the eXtremeDB embedded database, including its core in-memory architecture, support for multiple indexes and data types, direct data access, and more.
The Java Native Interface is included in the eXtremeDB In-Memory Database System (Windows, Linux, SunOS and HP-UX download packages) and eXtremeDB Fusion (Windows, Linux, SunOS and HP-UXdownload packages) available from McObject’s Web site. Contact McObject to learn about availability on other platforms.