Process control, telecom and network gear, and other embedded systems with demanding “five-nines” reliability (99.999% up-time) requirements comprise a fast-growing segment of real-time applications. These systems are managing greater volumes of more complex data—creating a need for a fast, lightweight commercial off-the-shelf (COTS) database that can meet their reliability imperative.
Typically, existing fault-tolerant systems use replication schemes to create backup embedded database copies. But replication entails latency from the moment a primary data store is updated, until these changes are propagated to the replica database. Such latency is often unacceptable in time-critical embedded systems (check out the article in Embedded Systems Europe, that highlights different approaches to database replication).
The eXtremeDB-HA runtime maintains multiple identical embedded database instances within separate address spaces. Typical hardware configurations include:

McObject’s eXtremeDB High Availability database system can utilize a “2-safe” rugged, time-cognizant two-phase commit protocol that ensures changes to the main instance database and identical standby instances succeed or fail together, or a faster “1-safe” asynchronous replication protocol. A High Availability control interface exported by the eXtremeDB-HA runtime provides the means for the application to configure, establish, maintain and terminate eXtremeDB-HA connections. A time cognizant HA transport protocol enables communication as well as detection of timeout situations.

|
Master side |
Replica Side |
|
|
eXtremeDB - High Availability uses a communication channel abstraction to allow master and replica applications to use user-defined communication channels to exchange data and communication messages during transaction processing. This is a flexible approach that allows the eXtremeDB embedded database to stay independent of the underlying communication media and the operating system.
At the same time, this approach requires an application to implement the actual communication layer. To facilitate faster development and deployment of fault-tolerant database solutions, the High Availability database package includes the eXtremeDB-HA Application Framework that demonstrates how to build HA-aware applications. The HA Framework includes working examples of communication channels built over various transports. The framework also includes a HA-aware application example that can be configured to use any of the channels provided in the Framework (currently TCP/IP, UDP, Named Pipes and Qnet). In addition, the sample application can be configured to use either the Standard Memory or Shared Memory version of eXtremeDB.
The High Availability subsystem exports an API that isolates the application from platform dependencies and the communication media. The communication protocol API used by the HA subsystem is divided into two layers:

The HA Application Framework implements a number of channels over the mostly commonly used transports:
TCP/IP
UDP/IP
Named Pipes
Qnet™ (QNX Neutrino)