eXtremeDB is a high-performance, low-latency, ACID-compliant embedded database management system using an in-memory database system (IMDS) architecture and designed to be linked into C/C++ based programs. It works on Windows, Linux, and other real-time and embedded operating systems.
History
eXtremeDB was introduced in 2001 by McObject LLC, targeting embedded systems running in resource-constrained environments (i.e. with limited random-access memory and relatively low-powered central processing units). eXtreme DB has a small code size, only about 150KB. It has native C language application programming interface and available source code. eXtremeDB has high degree of portability to support the varied processors and operating systems used in embedded systems. Early deployments by customers included integration in digital TV set-top boxes, manufacturing and industrial control systems, and telecom/networking devices. eXtremeDB emerged to manage what industry analysts, and McObject, portray as significant growth in the amount of data managed on such devices.
Later editions targeted the high-performance non-embedded software market, including capital markets applications (algorithmic trading, order matching engines) and real-time caching for Web-based applications, including social networks and e-commerce.
Product features
Core eXtremeDB engine
eXtremeDB supports the following features across its product family.
Application programming interfaces
A type-safe, native, navigational C/C++ API
SQL ODBC/JDBC API (included in eXtremeSQL edition) Native C# (.NET) API Java Native Interface (JNI) Python
Database indexes
B-tree
R-tree
Radix tree or Patricia trie
k-d tree
Hash table
Trigram index
Custom indexes
Concurrency mechanisms
eXtremeDB supports multiple concurrent users, offering ACID-compliant transactions (as defined by Jim Gray) using either of two transaction managers: a multiple-reader, single writer (MURSIW) locking mechanism, or multiversion concurrency control (MVCC) transaction manager (optimistic non-locking model).
Supported data types
eXtremeDB can work with virtually all C language data types including complex types including structures, arrays, vectors, and BLOBs. Unicode is supported.
Security
Page-level cyclic redundancy checking (CRC) AES encryption Secure Sockets Layer
Optional features
Distributed database management abilities
The eXtremeDB high availability edition supports both synchronous (2-safe) and asynchronous (1-safe) database replication, with automatic failover. eXtremeDB Cluster edition provides for shared-nothing database clustering. eXtremeDB also supports distributed query processing, in which the database is partitioned horizontally and the DBMS distributes query processing across multiple servers, CPUs, and/or CPU cores. eXtremeDB supports heterogeneous client platforms (e.g. a mix of Windows, Linux , and RTOSs) with its clustering and high availability features. A single partitioned database can include shards running on a mix of hardware and OS platforms
Hybrid storage
eXtremeDB Fusion edition provides the option of persistent storage (disk or flash) for specific tables, via a database schema notation.
Transaction logging
eXtremeDB Transaction Logging edition keeps a record of changes made to the database and uses this log to provide recovery in the event of device or system failure. This edition includes eXtremeDB Data Relay technology that replicates selected changes to external systems such as enterprise applications and database systems.
SQL ODBC/JDBC
The eXtremeSQL edition provides SQL ODBC support in eXtremeDB and a version 4, level 4 JDBC driver.
Kernel mode deployment
The eXtremeDB Kernel Mode edition deploys the database system within an operating system kernel, to provide database functions to kernel-based applications logic.
Features for managing market data
eXtremeDB Financial Edition provides features for managing market data (tick data) in applications such as algorithmic trading and order matching. A “sequences” data type supports columnar data layout and enables eXtremeDB to offer the benefits of a column-oriented database in handling time series data. The Financial Edition also provides a library of vector-based statistical functions to analyze data in sequences, and a performance monitor.