Transient Fault Handling Framework for SQL Azure, Azure Storage Services


SQL Azure databases is a distributed system in which each physical server hosts many databases. This sharing of resources leads to capacity constraints on operation throughput. SQL Azure handles these capacity by throttling operations & closing connections that are using too many resources. SQL Azure also closes connections when it alleviates operational hot spots by switching from a primary  SQL Azure database to one of its two backup databases.

One of the cloud development strategy is “Design for Failure” . It’s important that applications using SQL Azure being designed to handle failures appropriately.

There are two kinds of error:

1. Permanent Error: Indicating failure of a part of the system.

2. Transient Error: Existing only a brief time.

Permanent errors may be the indicate the logical problem with the application – and handle transient errors gracefully by retrying the operation that led to the error in hope that it does not recur. A dropped connection should be regarded as transient and application should respond to a dropped connection by opening new connection and retrying the operation.

There remains the problem of distinguishing permanent from transient errors. This can be done by comparing the error returned from a failed operation with known list of transient errors. An application can therefore include a retry mechanism that checks the status of operations and retries any operations that experienced a transient error.

 

The Windows Azure Appfabric Customer Advisory team has made available on MSDN code gallery the source code & pre-compiled assemblies for Transient Fault Handling Framework for SQL Azure , Azure Storage Services , Azure Appfabric Service Bus & Caching Services.

Download Here:  http://code.msdn.microsoft.com/Transient-Fault-Handling-b209151f              (C# Code)

  • Features of the framework:
  • Provides the foundation for building high extensible logic for handling a variety of transient conditions, not limited to SQL Azure.
  • Supports a range of pre-defined retry policies (Fixed retry interval, Progessive retry interval)
  • Supports seperate retry policy for SQL  connections & SQL Commands for adding flexibility.

 

 

 

Advertisements
%d bloggers like this: