EXtremeDB

eXtremeDB is an ACID-compliant embedded database management system (DBMS) designed for embedded systems and applications with real-time performance requirements. eXtremeDB is an in-memory database (also known as a main memory database, or MMDB), a type of database system that eliminates disk access by storing data in main memory and sending changes to the system’s hard disk (if there is one) only when specified by the application. In contrast, traditional ‘on-disk’ DBMSs, which comprise the great majority of database systems, cache frequently requested data in memory for faster access, but automatically write data updates, insertions, and deletes through to the hard disk.
Uses
eXtremeDB is integrated within the embedded software in hardware devices including consumer electronics (such as set-top boxes, MP3 players and mobile phone handsets); network routers, load balancing, and security appliances; telecommunications/networking (including switches, routers, BSS/OSS, session border controllers, WiMAX base stations, test equipment and many other applications); on-board automotive systems including vehicle telematics; military and aerospace applications; and industrial automation. eXtremeDB is also used in non-embedded applications that are inherently real-time, such as securities trading systems.
Product features
In-memory data storage
eXtremeDB provides direct access to data, which is stored entirely in memory. This eliminates disk reads and writes from the data management process, and removes the need for complex software logic such as database caching functions. With this simplified design, eXtremeDB provides a code “footprint” as small as 50K, and typical database read and write accesses at the level of a few microseconds, or less.
Transactions
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.
APIs
Native API
eXtremeDB's native application programming interface (API) includes a standard function library for basic database operations, as well as data manipulation functions that are generated when the database scheme is compiled, and which derives from the application’s data model. Database functions therefore reflect the purpose and schema for which the database is being used. The native API is type-safe - the developer's C/ compiler will catch data typing and assignment errors when the application is built.
SQL
eXtremeDB offers a SQL API, called eXtremeSQL, which implements much of the ANSI SQL-89 specification. eXtremeSQL includes eXtremeDB-specific extensions including support for structures, arrays and vectors, as well as query optimizations based on specific eXtremeDB capabilities.
Java Native Interface (JNI)
The eXtremeDB enables developers to work with the database entirely from within the Java programming language. There is no external database definition, and no requirement to compile a database schema. Database classes and their fields are defined in the application, via annotations within the class definition syntax. Java's reflection capability is used to discover these classes and fields. While the database is called from a Java application, eXtremeDB operations such as sorting, retrieval and storage execute in the compiled C of the database system's libraries.
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.
XML
eXtremeDB provides XML Extensions to facilitate simple schema evolution and the exchange of data between the eXtremeDB embedded database and external systems.
Developer tools
Typical eXtremeDB users are software developers creating applications in the C and C++ languages, who embed eXtremeDB’s data management functions in their application code, with the goal of maximum run-time efficiency. eXtremeDB features for coding in these languages include:
* Support for virtually all data types, including structures, arrays, vectors and binary large objects (BLOBs)
* Querying methods include hash indexes for exact match searches
* Tree indexes that support queries for pattern match, range retrieval and sorting
* “Voluntary” indexes for program control over index population
* Object identifier references provide direct data access
* Autoid for system-defined object identifiers
* Indexes that contain only a reference to data, rather than storing duplicate data, in order to minimize memory requirements
* Synchronous/asynchronous event notifications
* Object history
High availability
For software applications that require high availability, eXtremeDB High Availability (HA) Edition is designed to ensure that changes to a master database and identical standby databases succeed or fail together, and enables deployment of multiple fully synchronized eXtremeDB-HA databases within the same hardware device or across multiple, widely distributed systems. A predictable response time is created via the HA protocol's “time cognizance” - if a master or replica database fails to respond within a pre-set limit, it is automatically decommissioned and replaced in its role by a responding eXtremeDB-HA database instance.
Transaction logging
The eXtremeDB Transaction Logging Edition provides additional recovery capabilities. When transaction logging is active and enabled, all updates to data objects are logged to a set of files on disk, or on a network device. If the memory content is damaged or destroyed, the exact state of the database is restored by an automatic roll forward procedure.
64-Bit database
eXtremeDB-64 increases maximum database size by adding support for 64-bit micro-processors and operating systems. Compared to traditional 32-bit processors, 64-bit technology approximately doubles the amount of data a CPU can handle per clock cycle, and increases the amount of memory a system can address from approximately 3GB to more than one terabyte (1000GB).
Hybrid storage (eXtremeDB Fusion)
eXtremeDB Fusion is marketed by McObject as a "hybrid" embedded database system, in that it provides both in-memory and on-disk data storage in a single database instance. A notation in the database schema causes specified records to be managed entirely in main memory, while others are saved to disk. eXtremeDB Fusion's on-disk data management process uses database caching to keep frequently requested records in memory (while flushing updates through to permanent storage), while records specified as in-memory are accessed directly, eliminating mechanical disk I/O, multiple data copies, and (now redundant) caching processes.
Benefits of this hybrid approach cited by McObject include performance gains when sorting, storing and retrieving specified data entirely in memory, rather than going to disk; cost, because a less expensive hard disk can be substituted for more expensive RAM as a data storage medium; persistence; and form factor, because RAM chips can’t yet approach the density of an 80GB micro-drive.
Kernel mode
In 2008, McObject released eXtremeDB Kernel Mode (KM), an embedded database system designed for deployment in the operating system kernel. The company described eXtremeDB-KM's intended use as providing local data management for application logic that is deployed in kernel mode, in order to eliminating the context switches (and their performance penalty) that occur when a kernel mode process interacts with user mode software (in this case, a database system running in user mode). In a Dr. Dobb's Journal feature article about the new database technology, McObject CTO Andrei Gorine named security applications (such as access control systems and firewalls) and operating-system monitors as applications that commonly place functions in the operating-system kernel and would benefit from a kernel mode database.
Upgrades
eXtremeDB 4.0
In November, 2009, McObject released this upgrade to eXtremeDB. Changes to the embedded database include:
* Multi-Version Concurrency Control (MVCC) Transaction Manager. This new option for regulating access to the database eliminates “locking.” It is intended to use in applications with many tasks or processes and on multi-core systems.
* Support for the KD Tree data index
* Rewritten tree and hash data index algorithms, to take advantage of MVCC Transaction Manager
* Concept of Logical Database Devices that unifies commands to create a database, whether in memory, on persistent storage (with eXtremeDB Fusion), or both. Also adds techniques for performance optimization and database recovery when working with two or more storage devices, whether hard drives or solid state drives.
* New Uniform Database Access (UDA) application programming interface (API). The UDA API provides a static, native (to C/C++) function library that can be used across all projects. (This contrasts to eXtremeDB's original "project-specific" API, which consists of a function library that is specific to each database design.)
eXtremeDB 4.1
In May, 2010, McObject released eXtremeDB version 4.1 with the following new features:
* Support for custom collations, enabling developers to provide a desired character sorting sequence (collation) for data stored as text, including collation that supports a particular language or combination of languages.
* Binary schema evolution. This enables eXtremeDB to save a database as a binary image and then restore it with a changed schema.
* An improved Disk Manager process in eXtremeDB Fusion resulting in faster on-disk storage and retrieval.
* Cyclic Redundancy Check (CRC) at the database page level, and RC4 encryption. These detect tampering and secure the database from intruders, respectively.
*Improved backup: CRC automatically executes when a file is loaded, to ensure the databases has not been corrupted, and when it is saved, to verify that the file has been written in its entirety.
* Improved transaction logging, including the ability to restore a database from transactions logged up to a specific date/time or according to an “application-defined bookmark.”
Supported platforms
eXtremeDB is highly portable and source code is available. eXtremeDB can also run in the absence of an operating system. Platforms supported by McObject include:
* VxWorks
* QNX Neutrino RTOS
* Linux and Real-Time Linux distributions (MontaVista, Wind River Systems, BlueCat, etc.)
* LynxOS
* Nucleus
* INTEGRITY
* Microsoft Windows Embedded
* eCos
* RTXC Quadros RTOS
* RTX Real-Time Extension for Windows
* HP-UX
* Sun Solaris
* Bare bones boards (no operating system required)
eXtremeDB-based applications
* SOMA Networks - FlexMAX Mobile WiMAX System base station
* DIRECTV - Electronic programming guide for set-top boxes
* JVC - Alneo line of digital audio players
* Dalian Commodity Exchange - real-time commodities trading platform
* BAE Systems - Radar and mapping system in Panavia Tornado GR4 combat jet
* F5 Networks -- BIG-IP Internet traffic optimization devices
* Spirent Communications - TestCenter testing system for communication networks, devices and applications
* Siemens - Mobile phone handset
* NextPoint Networks - session border controller
* Tyco Thermal Controls - DigiTrace heat tracing and control system
* Academy of Electrical Power (China) - phasor measurement unit
* Tecnotree - Real-time credit and billing system for mobile phone networks
* myYearbook - Real-time object caching for social network Web site
* SCL Elements - Access Point switch/router for used in building and laboratory automation
 
< Prev   Next >