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.
The eXtremeDB Runtime Environment provides:
- 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.
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
For further information regarding the eXtremeDB middleware package for eCos see the
eXtremeDB datasheet, contact us by
email for any questions you may have, or call us for a detailed discussion.
|