# Introduction to eXtremeDB High Availability

> As explained in the eXtremeDB High Availability User's Guide, eXtremeDB High Availability is McObject's in-memory and on-disk embedded database solution for applications such as network and telecom gear that require the highest degree of reliability. This introduction describes eXtremeDB High Availability briefly and the following sections explain in detail its functionality and implementation.

> eXtremeDB High Availability maintains multiple identical database instances within separate address spaces. Typical hardware configurations include:

> - two or more boards in a chassis with a high-speed bus for communication
> - two or more computers on a LAN
> - two or more controllers connected via Control Area Network (CAN)
> - multiple processes or threads within the same hardware instance

> The following diagram illustrates how multiple applications might access a master database on network node `A` while all database updates are automatically replicated across the network to replica databases on nodes `B`, `C` and `D`.

> A time-cognizant two-phase commit protocol ensures that changes to the main instance and standby instances of a database succeed or fail together, ensuring synchronization (eager replication, Figure 1). Alternatively, eXtremeDB High Availability can be configured for faster lazy replication.

> A high availability control interface (HA API) exported by the eXtremeDB High Availability runtime provides means for the application to configure, establish, maintain and terminate eXtremeDB High Availability connections. With eager replication, a time-cognizant transport protocol enables communication as well as detection of timeout situations.

> In the event of hardware or software failure on the system where the master application (main instance of an HA application) is executing, a timeout is detected by the HA protocol and a replica (a standby copy of the application) is notified to elect one standby database instance to take over the role of the master database. Similarly, the eXtremeDB High Availability protocol recognizes failure in replica applications, resulting in termination of any connection that replica may have to the master database and a notification is sent to the master application so that corrective measures can be taken.