Product Overview

eXtremeDB is first and foremost an in-memory embedded database system (IMDS) ideally suited for embedded systems and other application domains that require extremely high performance / low latency, small footprint, compact storage, zero memory allocations, or any combination of these attributes. eXtremeDB provides superior performance by means of a very short code path, without sacrificing necessary DBMS features such as transactions that enforce the ACID properties, a data definition language, and support for SQL when needed. eXtremeDB also exhibits very small RAM, CPU and storage overhead. Designed for all-in-memory optimization, it boosts speed by eliminating file I/O, multiple data copies, and redundant logical processes, such as caching. When used with non-volatile (e.g. battery-backed) RAM, eXtremeDB delivers unsurpassed speed and persistence.

The eXtremeDB core provides data persistence with optimal performance through transaction logging, backup and database snapshot features. Or, by simply declaring database classes persistent, databases can be stored, entirely or partially, on persistent media.

Operations on “transient” (in-memory) database objects eliminate the complex and performance-draining tasks of cache and file management which has several beneficial side effects:

 

eXtremeDB is available for a variety of embedded, real-time, desktop, and server operating systems. For operating systems with a single-process, multi-task architecture (for example, VxWorks 5.5 and INTEGRITY OS), eXtremeDB manages data in any dedicated region of memory and coordinates access by multiple tasks (threads). For multi-process architectures (for example, Sun Solaris, Linux, Windows, QNX Neutrino, etc.), eXtremeDB can manage a database in shared memory and coordinate access by multiple processes, each potentially with multiple threads.

 

eXtremeDB is a development tool that database-enables applications providing programming interfaces for a wide variety of programming languages and development environments, including:

Beyond the core eXtremeDB package, the following features extend the core functionality to meet specialized system requirements:

Product evolution

eXtremeDB has played a significant role in the success of thousands of real-time applications. Driven by requests from developers and enthusiastic customers, additional features have been added to extend the basic eXtremeDB core technology to address evolving user requirements, as can be seen from the list of versions and optional modules above. However, great care has been taken in each stage of the product evolution to make no compromises with our basic extreme performance goals. Each addition, be it eXtremeDB Transaction Logging, eXtremeDB High Availability, eXtremeDB Cluster, eXtremeSQL or the Java, C# and Python APIs, is provided in the form of separate libraries that can be linked into an application, as desired, to address specific application needs.

While developers who need the absolute best performance for mission critical applications are reassured to know that the underlying core runtime remains the fastest, most robust in the industry, they also appreciate knowing that less demanding applications can interface with the same eXtremeDB databases through SQL, for example, to generate reports or allow a flexible query interface.

As more diverse application data persistence features were requested, a number of features were added to extend functionality and developer control for all-in-memory as well as persistent databases including the following:

Choice of “optimistic” or “pessimistic” transaction management by simply linking the appropriate library:

  • The Multi-Version Concurrency Control (MVCC) Transaction Manager, an optimistic (lockless) transaction manager which maximizes concurrency and scales excellently on multi-core systems, and allows choice of isolation levels when querying and updating the database
  • The Multiple Readers Single Writer (MURSIW) Transaction Manager which is an extremely lightweight transaction manager that is ideal for in-memory databases on systems with relatively few concurrent tasks and/or with a high ratio of READ_ONLY to READ_WRITE operations

Binary Schema Evolution (BSE)

BSE provides the ability to load a pre-existing database into a newer database format and transform existing data objects automatically (e.g. new/dropped classes or fields, new/dropped indexes)

Transaction Logging

The Transaction Logging feature adds data persistence:

  • logging can be turned on/off at runtime
  • Data Relay: open replication to share data with external systems

Active Replication Fabric

eXtremeDB Active Replication Fabric provides automatic replication of data between server and edge devices.

XML Capability

The XML implementation provides additional data import / export capability.

Enhanced Database Security

  • AES and CRC checking is provided for reliability when reading data from persistent storage
  • Page-level Data Encryption for robust data security

NVRAM support

Support for database recovery from battery-backed memory.

Caching options

eXtremeDB provides performance optimization application-managed caching options, such as:

  • Prioritized Cache: employing an enhanced LRU algorithm that allows applications to influence how long certain pages remain in the database cache
  • Connection Cache: the database runtime makes sure that pages loaded for a given transaction stay in the cache until the transaction is committed