What is a Real-time Database System?

From the database management system experts at McObject

 

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.

Soft real-time systems

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. 

Hard real-time systems

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.

Operator Interface for the transportation subsystem, Radioactive Waste Treatment Facility, Smolensk Nuclear Power Plant. Real-time data populating the BISMARC interface is drawn from the eXtremeDB in-memory database.  Read more in this Control Engineering article.

eXtremeDB includes many attributes and features that make it ideal for soft real-time systems and is used in millions world-wide

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 can be 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 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 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.

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.

Synchronous & asynchronous event processing

Designed to be completely self-sufficient with no dependencies on operating system services.

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.”

GoldenSource

“In addition to speed and the ability to process large quantities of data, clients also require richer data sets for golden price generation, which is what  eXtremeDB will help us do outstandingly well.”

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.”

TradeStation

eXtremeDB Financial Edition’s performance and fault-tolerance make it a natural fit for database processing in the enhanced order-execution system.”

BAE Systems

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

Boeing

eXtremeDB helped cut 18 programmer months from the development cycle.”

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.”

Dalian Commodity Exchange

eXtremeDB-64 contributes significantly to trading platform robustness, with a proven database transaction mechanism that is optimized for high throughput.”

Transaction Network Services

“Our evaluation determined that eXtremeDB outperforms other in-memory database systems, meeting [our] current needs and, just as importantly, accommodating future growth.”

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

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

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.”

GoldenSource

“In addition to speed and the ability to process large quantities of data, clients also require richer data sets for golden price generation, which is what  eXtremeDB will help us do outstandingly well.”

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.”

TradeStation

eXtremeDB Financial Edition’s performance and fault-tolerance make it a natural fit for database processing in the enhanced order-execution system.”

BAE Systems

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

Boeing

eXtremeDB helped cut 18 programmer months from the development cycle.”

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.”

Dalian Commodity Exchange

eXtremeDB-64 contributes significantly to trading platform robustness, with a proven database transaction mechanism that is optimized for high throughput.”

Transaction Network Services

“Our evaluation determined that eXtremeDB outperforms other in-memory database systems, meeting [our] current needs and, just as importantly, accommodating future growth.”

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

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