eXtremeDB : embedded database

eXtremeDB - Standard edition

The eXtremeDB™ Standard Edition embedded database is McObject's core product: an exceptionally fast database with an all-in-memory architecture and direct data manipulation. Storing and manipulating data in exactly the form used by the application removes overheads associated with caching and translation. Typical read and write accesses are at the level of a few microseconds, or less. The engine is reentrant, allowing for multiple execution threads, with transactions supporting the ACID properties, assuring transaction and data integrity.

The eXtremeDB Runtime Environment provides:

  • Accelerated transactions. The eXtremeDB in-memory database stores data entirely in main memory, eliminating the need for disk access, caching and other processes that add overhead to disk-based databases. The eXtremeDB transaction manager is optimized for high transaction rates.
  • Ultra-small footprint. By intelligently redesigning and streamlining core database functions, McObject offers an in-memory database system (IMDS) with an unbelievably small RAM footprint of 100K or less. This makes eXtremeDB a powerful enhancement to many intelligent devices with resource limits that, until now, ruled out the use of an embedded database.
  • Direct data access. Earlier data management technology required copying records from database storage to cache, and then to a new location for manipulation by the application. By operating as a RAM database that works with data directly in main memory, eXtremeDB eliminates the overhead of duplicate data sets and of copying data between locations.
  • No Translation. eXtremeDB stores data in the exact form in which it is used by the application - no mapping a C data element to a relational representation, for example, or requiring additional code to pick fields from tables and copy them to C structures. By eliminating this overhead, eXtremeDB reduces memory and CPU demands.
  • High reliability. For data integrity, eXtremeDB transactions support the ACID properties, ensuring that operations grouped into transactions will complete together or the database will be rolled back to a pre-transaction state.
  • eXtremeDB provides two APIs. The first is a standard function library for basic operations like cursor movement and opening and closing the database. The second API, for manipulating data, derives from the given application's data model and thus reflects the purpose and schema for which it is being used. For the runtime environment, this means more reliable code – the C/C++ compiler will catch data typing and assignment errors when the application is built. This makes eXtremeDB-based applications more reliable, since it is much harder for coding errors to make it into the final build.

eXtremeDB - Fusion

hybrid embedded database -- on-disk and in-memory storage

 McObject’s eXtremeDB Fusion is an embedded database that combines the strengths of the on-disk and all-in-memory approaches to data management in a single database system.

This unparalleled flexibility enables developers to tailor data management in order to optimize applications for speed and persistence, while taking advantage of the most cost-effective and physical space-conserving approaches to data storage.

In-memory database systems (IMDSs) such as McObject’s eXtremeDB offer superior performance and the possibility of very small RAM, CPU and storage demands. IMDSs (or RAM databases) boost speed and reduce footprint by eliminating mechanical disk I/O, multiple data copies, and redundant logical processes, such as caching.

In contrast, on-disk databases cache frequently requested data in memory, for faster access, but write database updates, insertions and deletes through the cache to be stored to disk. Byte-for-byte, disk storage can be cheaper than memory, and can also take less physical space.

The Best of Both Worlds: A Hybrid Database

eXtremeDB Fusion extends McObject’s core technology, enabling the developer to combine both database paradigms – in-memory and on-disk – in a single database instance. Specifying one set of data as transient (managed in memory), while choosing on-disk storage for other record types, requires a simple database schema declaration, as shown below.

 transient class classname {
     [fields]
};

persistent class classname {
     [fields]
};

The resulting embedded database system retains in-memory strengths (speed, small database footprint, intuitive native API, etc.), yet leverages the potential cost savings and built-in durability of an on-disk database.

eXtremeDB Fusion is available as a hybrid implementation of McObject’s eXtremeDB Standard Edition, or in the following editions:

  • eXtremeDB Fusion High Availability (HA) Edition
    “High Availability” means a database survives the failure of its software or hardware environment. Based on a rugged, time-cognizant, two-phase commit protocol, eXtremeDB Fusion HA enables deployment of two or more synchronized hybrid embedded databases within separate hardware instances using communication channels implemented over standard or proprietary protocols.
  • eXtremeSQL
    With eXtremeSQL, McObject offers a high performance implementation of the popular SQL database programming language for use with eXtremeDB Fusion. eXtremeSQL provides broad coverage of the SQL-89 standard, plus eXtremeDB-specific extensions including support for nearly all eXtremeDB data and query types.
  • eXtremeDB-64 Fusion – 64-bit Hybrid Embedded Database
    eXtremeDB-64 Fusion, the 64-bit version of McObject’s hybrid embedded database, supports databases that are hundreds of times larger than the 32-bit version, providing a powerful new tool in fields such as finance, science, computer simulation, and game production that demand instantaneous sorting, retrieval and manipulation of massive databases. 

Like eXtremeDB, eXtremeDB Fusion is available for many operating systems and with source code for porting to additional platforms.

eXtremeDB - High availability Edition

The eXtremeDB High Availability database is a fault-tolerant version of the eXtremeDB™ embedded database, designed to answer the challenge, “How can a RAM database survive the failure of the software or hardware environment in which it operates?” Designed for embedded systems that cannot afford to fail, eXtremeDB-HA delivers the highest degree of reliability, along with its unsurpassed performance and exceptionally small footprint.

Process control, telecom and network gear, and other embedded systems with demanding “five-nines” reliability (99.999% up-time) requirements comprise a fast-growing segment of real-time applications. These systems are managing greater volumes of more complex data—creating a need for a fast, lightweight commercial off-the-shelf (COTS) database that can meet their reliability imperative.

Typically, existing fault-tolerant systems use replication schemes to create backup embedded database copies. But replication entails latency from the moment a primary data store is updated, until these changes are propagated to the replica database. Such latency is often unacceptable in time-critical embedded systems (check out the article in Embedded Systems Europe that highlights different approaches to database replication).

eXtremeDB High Availability

The eXtremeDB-HA runtime maintains multiple identical embedded database instances within separate address spaces. Typical hardware configurations include:

  • Multiple processes or threads within the same hardware instance
  • Two or more boards in a chassis with a high-speed bus for communication
  • Separate address spaces on boards connected via industry standard communication media and protocol such as RS-485/RS-232, Control Area Network (CAN) or Ethernet
  • Two or more controllers connected via a proprietary communication media and/or protocol
  • Separate computers on a LAN

eXtremeDB - Transaction Logging

McObject has enhanced the eXtremeDB embedded database's persistence options with transaction logging - a process that journals changes made to a database (by transactions), as they are made. With transaction logging enabled, the eXtremeDB in-memory database runtime captures database changes and writes them to a file known as a transaction log.

In the event of a hardware or software failure, eXtremeDB can recover the database using the log. Logging is performed through periodic checkpoints, where the image of the database is saved to persistent storage, and all intermediate changes to the database are written to the log files.

Transaction logging does not alter the all-in-memory architecture of eXtremeDB, which retains a performance advantage over disk-based databases. eXtremeDB's read performance is unaffected by transaction logging and its write performance will far exceed that of traditional disk-based databases. The reason is simple to see: eXtremeDB transaction logging requires exactly one write to the file system for one database transaction. A disk-based database, however, will perform many writes per transaction (data pages, index pages, transaction log, etc) and the larger the transaction and the more indexes that are modified, the more writes that are necessary.

To minimize the performance impact, the eXtremeDB embedded database equips developers with all the controls they need to tune their applications. Many eXtremeDB features are parameterized to invoke the features most appropriate for a given application scenario, whether their priority is maintaining the highest performance possible, or ensuring the highest level of transaction durability. For example, transaction logging may be turned on or off at runtime and, when turned on, logging may be set to different levels of transaction durability, allowing system designers to make intelligent trade-offs between performance and risk of unrecoverable transactions.

Platform support

Platform support:

  • VxWorks
  • QNX Neutrino
  • Linux and Real-Time Linux distributions (MontaVista, BlueCat Linux, etc.)
  • Lynx OS
  • Nucleus
  • INTEGRITY OS
  • Microsoft Windows Embedded
  • eCos
  • RTXC Quadros RTOS
  • RTX Real-Time Extension for Windows
  • HP-UX
  • Sun Solaris
  • Bare bones boards (no operating system required)

Development Environments:

  • gnu toolchain (gcc 2.95 and higher)
  • Tornado 2.0 and 2.2 (GNU and Diab compilers)
  • QNX Momentics IDE (C, C++, Embedded C++)
  • Metrowerks CodeWarrior IDE (various platforms)
  • GreenHills Multi
  • Microsoft Visual Studio (C/C++, .NET)
On this pageOn this page

Information Additional Information

Related Products Related products
N/A

ContactContact Us
Call Logic Technology +31 77307 8438
+49 8914367945
Local numbers
Send us an e-mail Send an email

Supplier Info Supplier Information
About McObject:
McObject provides embedded database technology to meet the unique needs of intelligent, connected devices. Founded by veterans of the database and real-time systems industries, the company has developed eXtremeDB, a small-footprint in-memory database system (IMDS) optimized for use in set-top boxes, communications equipment and other embedded systems. McObject also provides Perst, an open source, object-oriented database for Java and .NET.