Java Native Interface (JNI) Database Management System

eXtremeDB for the fastest possible embedded database solution in Java.

Evaluate free trial software

eXtremeDB Java Native Interface (JNI) delivers the fastest embedded database in Java

McObject provides a Java Native Interface (JNI) for eXtremeDB, for the fastest possible embedded database solution in Java. The JNI reduces development time and accelerates run-time performance in Java applications, outperforming relational database management systems (RDBMSs) and “pure” Java object databases, as well as object caching software in Java.

eXtremeDB is also available as a classic client/server SQL RDBMS for Java (and other languages). Learn more about eXtremeSQL

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. When used as an in-memory database system, 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.

A Java application with eXtremeDB JNI benefits from native access to database functions running in compiled C

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 language, 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.

Java Class Declarations

Figure 2.

With eXtremeDB JNI, class definitions use “@” to indicate a database attribute.

Figure 3. eXtremeDB for HPC’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 — The Java Native Interface to eXtremeDB 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, when using the JNI, developers can leverage the other performance-enhancing features of eXtremeDB, including its core in-memory architecture, columnar layout for time series data, vector-based statistical function library, High AvailabilityClustering and more.

Contact us about the eXtremeDB JNI database management system.