|
eXtremeDB Design Principles
Download the white paper "Real-time
databases for embedded systems" ( pdf )
The main principle behind the design of eXtremeDB is to eliminate
performance overhead while providing a predictable and reliable
transactional model. McObject’s approach works best for pseudo-real-time
and real-time systems such as telecommunications
equipment, factory floor
automation systems, process
control, zero-latency consumer electronics
devices,
and medical equipment.
eXtremeDB is a main-memory embedded database that provides direct access to
data. eXtremeDB maps the database directly into the application’s address
space, providing applications with direct references to the data elements and
eliminating expensive buffer management. This fast access to data is further
optimized by placing the associated access structures on the
application’s stack. The eXtremeDB runtime code is directly linked with the
application so remote procedure calls are eliminated from the execution path. As a consequence, the execution path generally requires just a few CPU
instructions.
As a main-memory database, eXtremeDB removes the bottleneck of paging data in
and out during I/O operations. To further improve the predictability and
performance of database read and write operations, the eXtremeDB runtime uses its
own highly optimized memory manager that is responsible for all
allocations and de-allocations made by the database runtime. eXtremeDB never
relies on the operating system’s or C run-time library's memory management.
The eXtremeDB transaction manager is implemented via a simple transaction
queue, but adds a modern twist: It is possible to assign different priorities to
transactions at runtime. Five transaction priority levels are supported, from
the highest level (ISR) to the lowest (IDLE). In future versions,
the priority scheme will be extended to support a fully time-cognizant
transaction manager. This approach to transaction management is well
justified when:
- the
number of simultaneous transactions are relatively few
- the transactions themselves are short in duration – the time that an
application spends in communication with a “lock arbiter” would be
comparable to the time to complete the transaction, thus eliminating any
justification for more complex concurrency controls.
eXtremeDB implicitly limits transaction duration (i.e. the maximum number of
database operations within a transaction is limited), achieving its primary
objective of supporting extremely high transaction rates. To
provide consistent response times, eXtremeDB implements its own user-space
spin-locks to control the mutual exclusion, rather than relying on
operating system semaphores. The runtime can be configured to use various
techniques such as “test and set” or “compare and set” CPU
instructions, or direct access to interrupts.
To address the event-driven nature of real-time systems, McObject’s
eXtremeDB provides synchronous and asynchronous event processing functionality,
which is also designed to be completely self-sufficient with no dependencies on
operating system services.
A high availability (HA) control interface is exposed by the eXtremeDB High Availability runtime extensions and provides the
means for the application to configure, establish, maintain and terminate eXtremeDB
HA connections. Unlike other vendors who use replication algorithms to provide fault-tolerant system
configurations, following the spirit of its design principles, eXtremeDB
uses a time-cognizant two-phase commit protocol and time-cognizant failure
notifications to ensure high availability of the real-time system.
eXtremeDB does not require an operating system to run, but if an
operating system is available, eXtremeDB can take advantages of it. It is
currently available on many real-time operating systems including VxWorks,
QNX, Windows CE, and real-time Linux platforms, as well as non-real time OS
including Linux, Windows NT/2000/XP, Sun Solaris and HP-UX 11.x.
Back to Overview page
|