Performance results for real-time databases
Strictly speaking, a real-time databases is one whose response
time for certain transactions can be shown to meet temporal
constraints, commonly expressed as a worst-time requirement.
Normally a database is designed to return data as fast as it can,
without any hard constraint on how quickly it does so. This is
in good part because the response time is highly dependent on the
structure of the data stored. The same query with a different
value for a key could vary by orders of magnitude depending on
the number of rows with the key value in the query. Because of this,
a true real-time database is a combination of a real-time operating system,
a well defined and constrained execution environment, a real-time database management system,
a well-defined database, and a well-defined set of transactions.
In practice, such a tightly defined and constrained system
is rare, and data gathered for one are not applicable to other
such systems, since each is highly idiosyncratic. As a result,
data, when available, tend to be comparative or theoretical.
In-memory database management
The closest thing to a real time database is an in-memory database.
This is usually done in one of three ways.
Some data comparing performance for the last two alternatives
can be found in:
Build application-specific data structures in memory.
This yields very high performance, but it is expensive to
implement and maintain, particularly if the application requires
persistence, logging, or rollback, all of which are very
expensive to implement robustly.
Use a standard commercial DBMS, and place all of the files that comprise the
database memory resident into main memory.
- Build a database manager that builds and accesses data directly in
memory. This approach greatly reduces the length of the code path
required to access data, since it does not have to go through the
normal I/O packages, and it avoids the overhead of operating system
calls. The leading implementation of this concept is Lucent
database manager, (previously called Dalí).
Some performance figures for DataBlitz can be found in the
Dalí: A High Performance Main Memory Storage Manager,
from the Proceedings on the Conference on Very Large Databases, 1994.