Resource Management in Windows Azure SQL Database
Windows Azure SQL Database provides a large-scale, multi-tenant database service on shared resources from thousands of physical machines. Each physical machine can service many databases, and performance for each database can vary based on other activities on the physical hosting machine. If resources run low, SQL Database terminates the connections or denies requests from clients using excessive resources to provide a stable system, and prevents sessions from monopolizing all the resources until resources become available.
Additionally, SQL Database employs a built-in load-balancing technology to ensure the optimal usage of the physical servers running the resources to minimize request denials and connection terminations across all the machines.
In This Topic
SQL Database Network Topology
The following diagram illustrates the overall SQL Database network topology.
As seen in the diagram:
SQL Database provides the same tabular data stream (TDS) interface as SQL Server. Therefore, you can use familiar tools and libraries to build client applications for data that is in the cloud.
The load balancer ensures the optimal usage of the physical servers and services in the data centers.
The TDS Gateway functions as a gateway between your application and the underlying platform, where your data resides. It performs the functions of data center isolation, provisioning, billing and metering, and connection routing.
The underlying platform consists of many instances of SQL Server, each of which is managed by the SQL Database fabric. The SQL Database fabric is a distributed computing system composed of tightly integrated networks, servers, and storage. It enables automatic failover, load balancing, and automatic replication between physical servers.
Causes of Request Denials or Connection Termination
To provide a stable system and ensure optimum usage of resources, SQL Database terminates the connections or denies requests from clients using excessive resources. The denial of request or connection termination can happen due to one of the following three reasons:
In each of the above cases, you will receive an error. The topics in this section explain the resource management mechanism as a result of each of the above, the errors returned, and recommendations on how to troubleshoot/resolve these errors.