eXtremeDB - in-memory embedded database for the eCos RTOS
The eXtremeDB embedded database is an optional middleware package for the eCosPro RTOS that combines extreme performance, reliability and developer efficiency in a proven embedded database engine.
eXtremeDB is an ultra-small footprint, in-memory database system (IMDS) designed explicitly for embedded systems such as set-top boxes, telecom equipment, consumer appliances and other connected equipment. eXtremeDB minimizes resource consumption and offers unmatched performance, reliability and development flexibility. It delivers the capabilities you expect of an embedded database: high level data definition language, concurrent access, transactions, SQL, and flexible indexing to name a few. Plus some features you probably wouldn't expect in a database engine compact enough for the most deeply embedded systems, such as event notifications and object history.
|eXtremeDB is designed for High-Performance: optimized memory managers, hash and tree-based indices, multiple data layouts, transactions with priority scheduling and an application-specific API.|
In addition to eXtremeDB Standard Edition, McObject provides targeted solutions including eXtremeDB High Availability, for fault-tolerant applications; eXtremeDB Transaction Logging, for automatic recovery in the event of device or system failure; and eXtremeSQL, a high performance implementation of the popular SQL database programming language for use with eXtremeDB.
McObject's hybrid eXtremeDB Fusion combines the strengths of on-disk and in-memory data management in a single embedded database system, enabling developers to optimize applications for speed and persistence, while taking advantage of the most cost-effective and physical space-conserving approaches to data storage.
- Accelerated transactions
- eXtremeDB accelerates data management by storing 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, the in-memory database system (IMDS) delivers an unbelievably small RAM footprint of approximately 100K. This makes eXtremeDB a powerful enhancement to many intelligent devices with resource limits that, until now, ruled out the use of a database system.
- 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 working 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.
The Development Environment
Developers strive to produce readable, maintainable, efficient code in the shortest possible time. eXtremeDB includes several features that boost the developer's capabilities when integrating eXtremeDB in demanding real-time applications. Incorporating third party software often means learning and adopting an API that does not completely fit an application. eXtremeDB's project-specific API ensures that each database operation in the API reflects the type of the data being manipulated. s
To help in application debugging, eXtremeDB includes numerous traps in the runtime code; these can be selectively disabled as development and testing progresses, to optimize the application for speed. eXtremeDB is offered with full source code, to give an in-depth understanding of the database engine within an application. In addition, eXtremeDB supports virtually all data types as well as extremely efficient indexing for queries.
eXtremeDB provides developers with:
- An easy-to-learn API that is optimized for the application.
- Code that is more legible as well as easier to write and maintain.
- Compile-time type checking that helps eliminate coding errors.
|With eXtremeDB, the developer focuses on the data definition first, then eXtremeDB generates the API from this definition via the schema compiler.|
Complex data types and efficient queries
- Supports virtually all data types, including structures, arrays, vectors and BLOBs
- Querying methods include hash indexes for exact match searches
- Tree indexes 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
- Rather than storing duplicate data, indexes contain only a reference to data, minimizing memory requirements
- Synchronous/asynchronous event notifications
- Optional object history