Select Page

What is a Real-time Database System?

From the real-time database management system experts at McOBject

Evaluate free trial software

Real-time system concepts, and features to look for in a reliable database for real-time systems.

Real-time systems require predictable response times, and need to be deterministic.  Within that, there are soft real-time systems and hard real-time systems.  This page explains the distinction, what it means to be a real-time database system, and the features in eXtremeDB that make it the best real-time database for embedded systems.

What is a hard real-time system?

Hard real-time systems cannot miss deadlines, period. Any failure to meet a deadline results in system failure (and likely failover to a redundant system).  Consider a train navigation system. If the system fails to respond to an engineers input within the prescribed time, the system has failed, and the consequences can be severe. Database systems are not used in hard real-time systems because they are not deterministic.

What is a soft real-time system?

Soft real-time systems can miss deadlines, and there will be a degradation of performance, but not a complete failure.  A good example is Voice-over-IP telephone systems. Ideally, when presented with an input (the voice of the person on the other end of a conversation) the system generates the desired output within the deadline (and you hear the voice in your speaker). Failure to meet the deadline means the quality of the call is degraded, or dropped altogether.

What is a real-time database system?

Contrary to popular belief, a real-time database is not a super-fast database system. A real-time database system is one that can deliver deterministic response times. A database system may be super-fast, but that attribute alone does not make it a real-time database system. A real-time database system should have timing constraints. For example, there should be a way to define each transaction, tell the database system the deadline for each type of transaction, and the consequences of missing the deadline. There should also be a way to define the priority of each transaction. Finally, real-time database systems need to have a notion of temporal validity.

A train navigation system is a good example of a hard real-time system.
The eXtremeDB real-time deterministic database is used in train navigation

What makes eXtremeDB the ideal database for real-time systems?

Designed for use in resource-constrained, mission-critical and safety-critical embedded systems, eXtremeDB has earned its pedigree through a unique combination of features that are not found in any other database system.

eXtremeDB’s small footprint and frugal use of memory and CPU uniquely qualify it to fuel database management real-time applications.  eXtremeDB is the ideal database management system for real-time systems and is used in millions.

Learn more about small, fast, flexible eXtremeDB in markets around the world, from safety networks to military and aerospace systems that define the term “mission critical”.

Why does a radioactive waste treatment facility use eXtremeDB in-memory database? Read the article in Control Engineering.

eXtremeDB was originally conceived, designed and implemented as an in-memory database system

In contrast to in-memory capability that has been added on to what was originally a persistent, disk-based, DBMS, an IMDS avoids caches (no database cache and, more importantly, no file system cache). Any cache introduces indeterminate behavior (e.g. the uncertainty of a cache-hit or a cache-miss). The problem is exacerbated with hard disk drives; in the event of a cache-miss, the rotational latency of the drive is unpredictable. Rotational latency is the time waiting for the platter to spin and the disk head to re-position in order to read or write the desired track and sector of a platter).  Read a white paper about this topic, or visit our in-memory database Q&A page.

eXtremeDB never allocates system memory (e.g. malloc)

Implementations of malloc are “list allocators”. They keep a singly-linked list of free memory blocks. When a request is made for dynamic memory, the allocator walks the list until a free memory block that is large enough to satisfy the request is located. The problem here is, it is impossible to know for any given allocation request, how far the allocator will have to walk the list to find a suitable free memory block. Further, the linked list is a shared resource and must be protected from concurrent access, so a task requesting memory can be put into a wait queue for an indeterminate length of time. So, there are two sources of non-deterministic behavior: time spent walking the linked list, and time spent in the wait queue.  Read this article to learn more.

eXtremeDB provides hash indexes (in addition to B-Tree, R-Tree, Patricia trie and Trigram indexes)

Unlike tree indexes, hash indexes are deterministic. Tree indexes are inherently non-deterministic: the search for a given value in a tree index always begins at the root node and progresses down the tree until the node on which the value resides is located. This could be at the root node itself, or deep within the tree. Once the particular node is located, a binary search is conducted within the node’s slots. The binary search can find the value immediately, or exhaustively search the slots (the binary search could require nslots / 2 probes). So, both the time to find the tree node of interest, and the time to find the value within the node are not deterministic. In contrast, a hash algorithm is constant, resulting in exactly the bucket of the hash table containing the search value. If the hash table is large enough, collisions are avoided (collisions would introduce a new, different, type of indeterminate behavior).  Learn more.

eXtremeDB is an embedded database system

That means that the database object code is linked with the application code in a single executable program image. This is in contrast to a client/server database system, which requires inter-process communication (IPC) or remote procedure calls (RPC) between the database client and the database server. IPC and RPC require interrupts, context switches, and, in the case of RPC, network latency. All of these introduce non-deterministic behavior and are unsuitable for real-time systems.

eXtremeDB offers a native C language API, when many DBMS only offer an SQL API

SQL is a wonderful language for OLTP systems, but entirely inappropriate for real-time systems. SQL requires parsing of the SQL statement and formulation of an execution plan. Formulating the execution plan requires analysis by an optimizer. The time needed by the optimizer is inherently unpredictable, which renders all of SQL non-deterministic. In contrast, a native C API is just function calls. A programmer can count the number of machine language instructions that the C compiler generates, and using the information about the CPU, calculate the time required, whether the function can complete within one cycle, etc. In other words, it is deterministic as long as the function call avoids non-deterministic artifacts like memory allocation, trees, caches, etc. Read our white paper about this topic.

eXtremeDB provides transaction priority

When an eXtremeDB transaction is started, it can be assigned one of 5 priority levels and will be queued accordingly by the eXtremeDB MURSIW transaction manager. It should be used in concert with real-time operating system task priorities (and care should be taken not to create a priority inversion).  Learn more.

eXtremeDB offers the Time-To-Live feature

The Time-To-Live (TTL) mechanism facilitates automatic deletion of objects according to TTL policies. Two TTL policies are supported: MaxCount and MaxTime. The former sets an object count threshold, while the latter sets an object age threshold. Both policies can be set for a single class at the same time.  Learn more in our online documentation.

eXtremeDB has the features professional developers need for real-time systems.

Review a list of features

 

}

Real-time responsiveness

When used as an in-memory, embedded database system, eXtremeDB eliminates sources of latency such as cache misses, interprocess communication, remote procedure calls and creation of multiple copies of data.

eXtremeDB is the ideal database system

Active replication fabric

eXtremeDB Active Replication Fabric™ is McObject’s implementation for data exchange between real-time systems and database storage on gateways and servers.  Learn more.

N

Synchronous & asynchronous event processing

Designed to be completely self-sufficient with no dependencies on operating system services. Learn more in our documentation.

Secure with SSL, TLS and AES

We’ve upgraded eXtremeDB encryption for data-at-rest with an AES implementation, and utilize SSL/TLS to encrypt data-in-motion. Learn more.

Designed to prevent data corruption

eXtremeDB’s Type-safe API Eliminates Database Corruption. CRC checksum detects unauthorized modification. Learn more.

Flexible in-memory & persistent architecture

eXtremeDB combines the strengths of the on-disk and all-in-memory approaches to data management in a single database system. eXtremeDB was originally designed an optimized as an in-memory database system. Learn more.

Optional modules

SQL

An ideal solution for application development in fields where real-time responsiveness is a must and SQL is the dominant database language.

High Availability

An active-passive real-time distributed database system for systems with demanding “five-nines” reliability (99.999% up-time).

Cluster

An active-active distributed real-time database system that manages databases across multiple hardware nodes, enabling two or more servers to share the workload.

F5

“We determined that integrating a proven data management solution will shorten development and testing, cutting overall development costs. Our experience with eXtremeDB has borne out this prediction”

– Customer since 2003

Spirent

“It was more than twice as fast as the second-place database.”

ViaSat

“After a stringent review process, we selected eXtremeDB because of its scalability; outstanding performance due to its sharding capability; and our confidence in McObject’s ability to offer a solid support team.”

Sandvine

“Reliability is absolutely critical to our customers, which was one of the key reasons for choosing McObject’s eXtremeDB.”

BAE Systems

“Among other benefits, eXtremeDB makes it simple to configure databases and tables using the product’s schema compiler.”

Boeing

eXtremeDB High Availability will provide the highest degree of reliability for the Apache’s mission-critical systems.”

Schneider Electric

“In addition to its positive impact on our business, eXtremeDB is well-designed to solve the unique development challenges of data management for real-time embedded software.”

Genband

“Leveraging a tightly integrated database engine like McObject’s commercial off-the-shelf (COTS) eXtremeDB offers reliability, development efficiency, and the flexibility to cost-effectively add on new application features in the future.”

We’re honored to be used by companies that lead their industries. See a partial client list.

Find eXtremeDB in over 30,000,000 deployments worldwide.

F5

“We determined that integrating a proven data management solution will shorten development and testing, cutting overall development costs. Our experience with eXtremeDB has borne out this prediction”

– Customer since 2003

Spirent

“It was more than twice as fast as the second-place database.”

ViaSat

“After a stringent review process, we selected eXtremeDB because of its scalability; outstanding performance due to its sharding capability; and our confidence in McObject’s ability to offer a solid support team.”

Sandvine

“Reliability is absolutely critical to our customers, which was one of the key reasons for choosing McObject’s eXtremeDB.”

BAE Systems

“Among other benefits, eXtremeDB makes it simple to configure databases and tables using the product’s schema compiler.”

Boeing

eXtremeDB High Availability will provide the highest degree of reliability for the Apache’s mission-critical systems.”

Schneider Electric

“In addition to its positive impact on our business, eXtremeDB is well-designed to solve the unique development challenges of data management for real-time embedded software.”

Genband

“Leveraging a tightly integrated database engine like McObject’s commercial off-the-shelf (COTS) eXtremeDB offers reliability, development efficiency, and the flexibility to cost-effectively add on new application features in the future.”

We’re honored to be used by companies that lead their industries. See our client list.

Find eXtremeDB in over 30,000,000 deployments world wide.

eXtremeDB is proven in these markets and others.

Coming soon!