McObject’s New Embedded Database Deploys in Kernel Mode To Provide Highest Level of Performance and Determinism
April 2, 2008 McObject® has released eXtremeDB™ Kernel Mode (KM), a version of the company’s in-memory embedded database system designed for deployment in the operating system kernel. By operating at this innermost and most privileged level of computer systems, eXtremeDB-KM leverages the high priority, zero-latency responsiveness afforded to kernel tasks—and meets the data sorting, access and retrieval needs of applications that place key functions there.
Representative applications performed an order of magnitude faster with eXtremeDB Kernel Mode than with the standard user-mode, all-in-memory edition. These applications simulate an access-control system with its policy engine running in kernel mode (as is often the case in such software); system requirements included checking a “rules” database to determine whether a process has permission to open specific files in a certain mode and at a certain time and date. When the database resides in the kernel along with the policy engine, performance is dramatically accelerated by eliminating context switches, or jumps between kernel and user space.
“Running in the kernel is all about better utilization of the CPU by avoiding context switches, and their voracious demand for CPU cycles in most operating systems,” McObject CEO and Co-Founder Steve Graves said. "In addition to security applications such as access control and firewalls, high performance systems that place application logic in the OS kernel and could benefit from eXtremeDB-KM include telecommunications, operating system monitors, and financial applications including arbitrage and options trading, to name a few," Graves said.
Although such applications often need local, high-performance data management, the kernel has generally been viewed as off-limits for database management systems (DBMSs), due to the possibility that database tasks (i.e. locking, file and disk I/O, cache management) might overwhelm kernel resources and disrupt the OS. Instead, developers have written more limited kernel mode data management algorithms, or have deployed database systems in user space, incurring context switches when kernel mode tasks require access to the stored data.
The advent of streamlined, all-in-memory DBMSs such as McObject’s eXtremeDB enables deployment of a proven, full-featured database system in the kernel space. eXtremeDB-KM is the first database designed explicitly for such use, and enables kernel mode applications to take advantage of features including transaction processing, querying using multiple index types, multi-threaded data access, a flexible database API, and a high-level data definition language.
“Stability is a critical consideration when adding any process to the kernel, because the margin for software error there is quite thin. In many cases, performance requirements dictate placing the data management application logic in the kernel. When this is the case, meeting kernel mode processes’ data access needs by using a proven, off-the-shelf kernel mode database, designed for and tested in the kernel, greatly reduces the likelihood of faults, compared to the alternative of mapping ‘homegrown’ data management code to protected kernel space,” Graves said.
The eXtremeDB-KM run-time maps directly into the kernel module address space, providing direct access to the data elements and eliminating expensive buffer management.
Because eXtremeDB-KM's run-time code is directly linked with the kernel module, inter-process communication calls are eliminated from the execution path. As a consequence, this path generally requires just a few CPU instructions. Kernel threads have direct access to kernel-mode databases; concurrent access is coordinated by the database run-time. The databases are also made available to user-mode applications via a high-level interface definition language (IDL) and an IDL compiler that produces a set of public user-mode interfaces implemented via system calls. (Kernel mode programs access the database using its standard API.)
McObject’s eXtremeDB-KM package offers specialized development tools, complete source code, and example programs. One example kernel module provided with eXtremeDB-KM checks a given operation against access rules stored in the database. A related user-mode example program provides the interface to define and change rules stored in the kernel-mode database.
eXtremeDB-KM itself consists of the eXtremeDB In-Memory Database System edition, with some adjustments to permit kernel usage. For example, the database implements locking via kernel-mode spinlocks rather than through synchronization primitives provided in user space.
“Database developers have enhanced their technology’s speed, robustness and determinism by approaching the problem from different angles. These include new physical database structures—such as ISAM, VSAM and clustered indexes—and new modes of data storage, as with in-memory database systems,” McObject Chief Technology Officer Andrei Gorine said. “eXtremeDB has its roots in the frugal environment of embedded systems, and eXtremeDB Kernel Mode represents a ‘classically embedded’ approach, reducing latency and boosting prioritization of applications in which it is embedded by facilitating their deployment in the inherently higher-privileged and faster kernel space,” he said.
Founded by embedded database and real-time systems experts, McObject offers proven data management technology that makes real-time systems smarter, more reliable and more cost-effective to develop and maintain. McObject counts among its customers industry leaders such as Chrysler, GigaSpaces, Siemens, Phillips, EADS, JVC, Tyco Thermal Controls, F5 Networks, CA, Motorola and Boeing. McObject, based in Issaquah, WA, is committed to providing innovative technology and first-rate services to customers and partners. The company can be reached at +1-425-888-8505, or visit www.mcobject.com.
McObject, eXtremeDB and eXtremeDB Kernel Mode (KM) are trademarks or registered trademarks of McObject LLC. All other company or product names mentioned herein are trademarks or registered trademarks of their respective owners.