Data loss or not on application failover?

There is a significant difference between synchronous replication vs asynchronous replication. According the choice, you may have data loss on application failover.

Synchronous replication as implemented by the SafeKit software is essential for failover of transactional applications. With synchronous replication, all committed data on the disk of the primary server are on the disk of the secondary server. With asynchronous replication, committed data on the disk of the primary server can be lost in case of failure because not copied to the secondary server. There is also an alternative solution named semi-synchronous replication, with committed data on the secondary server but not necessary on its disk.

To help you to take the right decision if you have to choose between synchronous replication vs asynchronous replication, we explain now the technical mechanisms and the impact on application failover.

Synchronous replication

With synchronous replication as implemented by the SafeKit software, when a disk IO is performed by the application or by the file system cache on the primary server, SafeKit waits for the IO acknowledgement from the local disk and from the secondary server, before sending the IO acknowledgement to the application or to the file system cache. This mechanism is essential for failover of transactional applications when they commit their transactions.

Asynchronous replication

With asynchronous replication implemented by most solutions, the IOs are placed in a queue on the primary server but the primary server does not wait for the IO acknowledgments of the secondary server. So, all data that did not have time to be copied across the network on the secondary server is lost if the primary server fails. In particular, a transactional application loses committed transactions in case of failure.

Semi-synchronous replication

With semi-synchronous replication, SafeKit always waits for the acknowledgement of the two servers before sending the acknowledgement to the application or the file system cache. But in the semi-synchronous case, the secondary sends the acknowledgement to the primary upon receipt of the IO and writes to disk after. In the synchronous case, the secondary writes the IO to disk and then sends the acknowledgement to the primary.

Conclusion

With asynchronous replication, there is data loss on failure. Even with the semi-synchronous replication, there is data loss in the special case of a simultaneous double power outage of both servers, with inability to restart on the former primary server and the requirement to re-start on the secondary server. So be very careful when choosing synchronous replication vs asynchronous replication. Always prefer a synchronous or a semi-synchronous replication for a critical application.

Other differentatiors to consider when choosing a high availability cluster with synchronous or asynchonous replication

Best practices of a mirror cluster with replication and failover

Evidian SafeKit mirror cluster with real-time file replication and failover

All clustering features All clustering features

Like  The solution includes all clustering features: server failure monitoring, network failure monitoring, software failure monitoring, automatic application restart with a quick recovery time, a virtual IP address switched in case of failure to automatically reroute clients

Dislike  This is not the case with replication-only solutions like replication at the database level

Dislike  Quick application restart is not ensured with full virtual machines replication. In case of hypervisor failure, a full VM must be rebooted on a new hypervisor with an unknown recovery time

Like   The cluster configuration is very simple and made by means of a high availability application module. There is no domain controller or active directory to configure on Windows. The solution works on Windows and Linux

Synchronous replication Synchronous replication

Like  The real-time replication is synchronous with no data loss on failure

Dislike  This is not the case with asynchronous replication

Fully automated failback procedure Automatic failback

Like  After a failure when a server reboots, the replication failback procedure is fully automatic and the failed server reintegrates the cluster without stopping the application on the only remaining server

Dislike  This is not the case with most replication solutions particularly with replication at the database level. Manual operations are required for resynchronizing a failed server. The application may even be stopped on the only remaining server during the resynchonization of the failed server

Replication of any type of data

Like  The replication is working for databases but also for any files which shall be replicated

Dislike  This not the case for replication at the database level

File replication vs disk replication File replication vs disk replication

Like  The replication is based on file directories that can be located anywhere (even in the system disk)

Disike  This is not the case with disk replication where special application configuration must be made to put the application data in a special disk

File replication vs shared disk File replication vs shared disk

Like  The servers can be put in two remote sites

Dislike  This is not the case with shared disk solutions

Remote sites Remote sites

Like  All SafeKit clustering features are working for 2 servers in remote sites. Performances of replication depends on the interconnect latency for real-time synchronous replication and on the bandwidth for resynchronizing data on a failed server

Like  If both servers are connected to the same IP network through an extended LAN between two remote sites, the virtual IP address of SafeKit is working with rerouting at level 2

Like  If both servers are connected to two different IP networks between two remote sites, the virtual IP address can be configured at the level of a load balancer. SafeKit offers a health check: the load balancer is configured with a URL managed by SafeKit which returns OK on the primary server and NOT FOUND else. This solution is implemented for SafeKit in the Cloud but it can be also implemented with a load balancer on premise

Quorum Quorum

Like  With remote sites, the solution works with only 2 servers and for the quorum (network isolation), a simple split brain checker to a router is offered to support a single execution

Like  This is not the case for most clustering solutions where a 3rd server is required for the quorum

Uniform high availability solution Uniform high availability solution

Like  SafeKit implements a mirror cluster with replication and failover. But it imlements also a farm cluster with load balancing and failover. Thus a N-tiers architecture can be made highly available and load balanced with the same solution on Windows and Linux (same installation, configuration, administration with the SafeKit console or with the command line interface). This is unique on the market

Dislike  This is not the case with an architecture mixing different technologies for load balancing, replication and failover

High availability architectures comparison

(click on the feature for more information)

FeatureSafeKit clusterOther clusters
Software clustering vs hardware clustering A software cluster with SafeKit installed on two servers
A simple software cluster with the SafeKit package just installed on two servers
Hardware clustering with external shared storage Network load balancers or dedicated proxy servers

Complex hardware clustering with external storage or network load balancers
Shared nothing vs a shared disk cluster SafeKit shared-nothing cluster: easy to deploy even in remote sites
SafeKit is a shared-nothing cluster: easy to deploy even in remote sites
Shared disk cluster: complex to deploy
A shared disk cluster is complex to deploy
Application High Availability vs Full Virtual Machine High Availability
SafeKit application HA supports hardware failure, software failure, human errors with quick recovery time
Virtual machines high availability supports only hardware failure with an unknown recovery time
Full virtual machines HA supports only hardware failure with a VM reboot and an unknown recovery time if the OS reboot does not work
Synchronous replication vs asynchronous replication
SafeKit implements real-time synchronous replication with no data loss in case of failure
Asynchronous replication with data loss on failure
With asynchronous replication, there is data loss on failure
Byte-level file replication vs block-level disk replication SafeKit cluster with byte-level file replication: simply replicates directories even in the system disk
SafeKit implements real-time byte-level file replication and is simply configured with application directories to replicate even in the system disk
Cluster with block-level disk replication: complex and require to put application data in a special disk
Block-level disk replication is complex to configure and requires to put application data in a special disk
Heartbeat, failover and quorum to avoid 2 master nodes Simple quorum in a SafeKit cluster with a split brain checker configured on a router
To avoid 2 masters, SafeKit proposes a simple split brain checker configured on a router
Complex quorum in other clusters: third machine, special quorum disk, remote hardware reset
To avoid 2 masters, other clusters require a complex configuration with a third machine, a special quorum disk, a special interconnect
Network load balancing No special network configuration in a SafeKit cluster
No dedicated server and no special network configuration are required in a SafeKit cluster for network load balancing
Special network configuration in other clusters
Special network configuration is required in other clusters for network load balancing

SafeKit Modules for Plug&Play High Availability Solutions

SafeKit miror and farm high availability modules

SafeKit HA cluster architectures

Free high availability farm modules

Deploy a farm module on N servers.
And implement a network load balancing cluster with application failover.
The target is an application with web services to load balance between servers and with an automatic restart in case of failure.

Click on the blue buttons for a full description of the solution and a step-by-step installation procedure

Farm modules (load balancing and failover)

Windows

Linux

IIS module-
Apache module
Generic farm module for any application
Amazon AWS farm
Microsoft Azure farm
Google GCP farm
Cloud generic farm

Free high availability mirror modules

Deploy a mirror module on 2 servers.
And implement a mirror cluster with real-time file replication and application failover.
The target is an application with a database or flat files to replicate and with an automatic restart in case of failure.

Click on the blue buttons for a full description of the solution and a step-by-step installation procedure

Mirror modules (replication and failover)

Windows

Linux

Microsoft SQL Server-
Oracle
MySQL
PostgreSQL
Firebird
Hyper-V-
Milestone XProtect (based on Microsoft SQL Server)-
Hanwha Wisenet SSM (based on PostgreSQL)-
Generic mirror module for any application
Amazon AWS mirror
Microsoft Azure mirror
Google GCP mirror
Cloud generic mirror

Demonstrations of SafeKit High Availability Software

SafeKit Webinar

This webinar presents in 10 minutes Evidian SafeKit.

In this webinar, you will understand:

  • mirror and farm clusters
  • cost savings against hardware clustering solutions
  • best use cases
  • the integration process for a new application

Microsoft SQL Server Cluster

This video shows a mirror module configuration with synchronous real-time replication and failover.

The file replication and the failover are configured for Microsoft SQL Server but it works in the same manner for other databases.

Free trial here

Apache Cluster

This video shows a farm module configuration with load balancing and failover.

The load balancing and the failover are configured for Apache but it works in the same manner for other web services.

Free trial here

Hyper-V Cluster

This video shows a Hyper-V cluster with full replications of virtual machines.

Virtual machines can run on both Hyper-V servers and they are restarted in case of failure.

Free trial here