eXtremeDB/rt Features a Compact and Highly Configurable Database Kernel
While always preserving fully deterministic real-time transaction control, the eXtremeDB/rt kernel can be tailored for the specific needs of target applications. Source-code level kernel configurations can include only features required by the target applications, excluding unnecessary database management code. In order to satisfy the goal of providing predictable real-time database management, eXtremeDB/rt was designed to reduce the complexity of the kernel internals.
A simplified database runtime
eXtremeDB/rt is designed for embedded applications with mission- and safety-critical requirements in mind. The major objective of eXtremeDB/rt is to provide a deterministic database management component to real-time applications. In order to achieve the objective, the database kernel enforces transaction deadlines, while preserving logical consistency through the ACID (Atomicity, Consistency, Isolation, Durability) properties of transactions. Evaluating the complexity of database operations is not trivial — there are many factors that must be taken into account: the underlying hardware and CPU architecture, the volume of data kept in the database, data distribution, and other considerations. As a result, it is hard to know the upper boundaries for various database operations. It is difficult to make an accurate estimate of the time of execution on any level — either the application, or the database kernel: any calculated worst-case scenario could be “too pessimistic”. To maintain essential functionality of the kernel while fulfilling the goal of predictability, eXtremeDB/rt had to sacrifice functionality that is not commonly utilized by embedded applications, especially those that require predictable, deterministic response times from the database system. The pictures below illustrate the modifications.
Highly configurable and versatile kernel
Real-time operating systems have different (and often multiple) scheduling policies, and different (and often multiple) ways of measuring time. The eXtremeDB/rt kernel is adaptable to different RTOS scheduling policies and services (e.g. synchronization primitives) and ways of measuring time. The eXtremeDB/rt kernel supports multiple transaction managers, and adjustable database runtime tracing capabilities and includes a highly adaptable system abstraction layer (SAL) that encapsulates necessary operating system services. These options can be chosen by the application developer either at the database kernel or the application compile time.
eXtremeDB/rt comes with source code and is easily configurable to include/exclude necessary/unnecessary runtime features. For example, it is quite easy to compile out index implementations that are not required by the application (RTree for instance), thereby minimizing footprint.