eXtremeDB Kernel Mode
The first database management system designed explicitly to run in the OS kernel
At the heart of many operating systems is the kernel, responsible for resource allocation, scheduling, low-level hardware interfaces, network, security and other integral tasks.
To accelerate overall system performance, some applications are deployed, entirely or in part, as kernel mode software components. Often such kernel-based software must sort, store and retrieve complex data – for example, an access control system’s “policy engine” may reside in the kernel and need to check 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.
The first kernel mode database system
eXtremeDB Kernel Mode (KM) is the first database management system (DBMS) designed explicitly to run in the OS kernel, providing kernel-based application functions with critical database capabilities such as transaction processing, querying using multiple index types, multi-threaded data access, a flexible database API, and a high-level data definition language.
McObject pioneered in-memory embedded databases with its ultra-small footprint eXtremeDB. eXtremeDB’s efficiency, and its streamlined, all-in-memory architecture, permit its deployment in the kernel, where other database management systems (DBMSs) might overwhelm kernel resources.
In representative applications, eXtremeDB-KM performed an order of magnitude faster than the alternative of deploying a database system in user space and requiring kernel processes to access it via expensive (in performance terms) context switches.
Direct access to kernel data
eXtremeDB-KM is an in-memory database system that provides direct data access to kernel processes. The eXtremeDB run-time maps its databases into the driver or kernel module address space, providing pointers to the data elements and eliminating expensive buffer management.
The eXtremeDB-KM run-time code is directly linked with the module, so remote procedure calls are eliminated from the execution path. As a consequence, the execution path generally requires just a few CPU instructions. Kernel-mode 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 set of public interfaces implemented via system calls (see diagram, below).
eXtremeDB Kernel Mode is available to kernel processes directly. User-mode applications interact with eXtremeDB-KM using a set of public interfaces implemented via system calls to a kernel-mode proxy.
The eXtremeDB-KM package
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.
Contact McObject for an evaluation copy of eXtremeDB-KM.
Read the paper, Kernel Mode Database Integration for High Performance Applications, by McObject CTO and co-founder Andrei Gorine, and Senior Engineer Alexander Krivolapov.