ScaleArc complements database failover by making that failover invisible at the application layer. The ScaleArc software enables seamless failover for both mirroring clusters and AlwaysOn environments. With mirroring, the ScaleArc software provides AlwaysOn-like failover without an active secondary, and with AlwaysOn, the ScaleArc software lets you take advantage of SQL Server AlwaysOn Availability Groups without any application changes and it augments the capabilities of AlwaysOn.
The ScaleArc software enables customers to deliver zero downtime environments, shielding applications from database downtime. The technology holds database requests in a queue during database failover and then forwards the requests once the failover is complete. As a result, users of ScaleArc-enabled applications and websites see delay but not errors during failover. This app-transparent failover works in SQL Server mirroring clusters, so customers on Standard Edition can access the kind of seamless failover available with AlwaysOn.
SQL Server’s Availability Groups technology provides a fundamentally strong replication framework that lets you customize it to suit your architecture, availability, and data safety needs. However, customers cannot take full advantage of these capabilities out of the box. For example:
- The Availability Group Listener-based connectivity approach introduces a lookup / double-hop mechanism for apps to discover the appropriate server to send the load to but is not easy to build into apps, especially legacy ones that may not be able to use newer drivers.
- The lookup mechanism for AGs introduces additional delay during failover, and users must add the “MultiSubNetFailover” parameter in the connection string to deploy in a multi-data center topology.
- Even though AlwaysOn Availability Groups enable readable secondary servers, using them requires modifying the application to support read-intent connection strings.
- SQL Server’s failover model causes a lot of application errors, as both the servers participating in a failover drop all inbound client connections during failover and cannot accept any new connections until the failover for the databases, as well as the Availability Group involved, is complete.
- Availability Groups do not support any load balancing, creating application performance problems that can limit app availability.
ScaleArc eliminates a lot of these limitations and provides for a highly resilient way for any application to harness the power of SQL Server AlwaysOn Availability Groups to the fullest. Many customers compare ScaleArc + SQL Server AlwaysOn to be as strong as, if not stronger than, Oracle RAC. Not only can ScaleArc enable a highly resilient database environment, it also provides additional scalability and performance benefits and allows for database failover across data centers, which even Oracle RAC can’t do without additional hardware or software resources, since it is dependent on shared storage endpoints which cannot scale across data centers.
ScaleArc provides your application the following benefits immediately, without any application modifications:
- Automatic read/write split, routing writes to a primary discovered with a consistent, split brain-safe hierarchical model
- Dynamic load balancing to the fastest replication-synched secondary
- Ability to take servers out of the traffic pool to perform maintenance without having to manually remap apps
- Reduced errors during failover by using the surge queue to hold pending queries and preventing excessive connection errors
- Failover within the same data center or across data centers, without the application needing any changes in connection endpoints or configuration
- Ability to run applications and databases in an active-active fashion across multiple data centers or geographic locations
ScaleArc delivers these benefits because we’ve built a deep integration with SQL Server AlwaysOn Availability Groups, where ScaleArc directly reads SQL Server Data Management Views to discover the current topology of the database cluster and recognize the roles and status of each individual server - such as whether the server is a primary or a secondary, what type of replication it uses, if it is in good health, and what type of connections and queries it can accept. This integration allows ScaleArc to send traffic directly to the database servers, without the need to go via the Availability Group Listener, which ScaleArc uses only for cluster discovery.
Once ScaleArc detects that any server in the cluster has failed, ScaleArc can immediately stop sending load to that server. ScaleArc also holds pending queries during failover in an ACID- or transaction-compliant FIFO queue and then send those queries to the newly promoted primary when it becomes available. This approach reduces application errors and connection errors significantly, because it allows the application to be shielded from back-end database failures, using the load balancing and connection management functionality provided by ScaleArc.
ScaleArc also supports Availability Groups load balancing, which can improve app uptime by distributing the load effectively. ScaleArc leverages time-to-first-byte to enable geo-aware, peformance-aware load balancing.