HA, DR, and Scalability concepts
Remain available during system outages using High Availability, Disaster Recovery, and Scalability
High availability (HA) is the ability to remain available with no interruption to service during a system outage.
High availability (HA) is the ability to remain available with no interruption to service during a system outage. Its purpose is to provide uninterrupted access to an application over a long time. It requires at least two servers running on different hardware. It optionally uses redundant hardware on each server and may run servers inside virtual machines that automatically and transparently move off failed hardware servers to working hardware. It also requires mechanisms to detect software or hardware failure as well as mechanisms to ensure that a failed server remains down so that it does not process data unexpectedly and create data inconsistencies. Lastly, it provides mechanisms to automatically fail over database software and notify client applications to reconnect to the proper running database server.
FairCom products use Linux Pacemaker or Windows OS cluster to create highly available two-node clusters. You can use a cluster file system to share the same storage across the servers for an active-passive solution. This architecture provides the fastest write performance.
Alternatively, you can use FairCom's synchronous data replication across the two servers to create an HA solution that supports reads and writes on the primary server and reads on the secondary server. Synchronously replicating data across two servers requires network communication for each commit and this impacts database performance.
You can also use FairCom's asynchronous data replication across two servers to create an active-active, eventually consistent HA solution. Asynchronous data replication has no effect on performance but allows multiple users to edit the same record at the same time and save the record to different servers. When the record is replicated across all servers, the database logs a data conflict and allows the last change to persist.
Disaster recovery (DR) is the ability to recover from a catastrophic regional failure in a few hours or a few days. Its purpose is to recover from a disaster by running an application in a different geographical region. This requires databases to be running in multiple data centers in different regions. The databases replicate data continuously from one region to another.