The SQL Azure Q4 2011 Service Release includes a new feature called "SQL Azure Federations," which enables greater scalability and performance from the database tier of your application through horizontal partitioning. "One or more tables within a database are split by row and partitioned across multiple databases (Federation members). This type of horizontal partitioning is often referred to as 'sharding'," ADO.NET team explained.
Adding, the team said "current release of Entity Framework can be used to work with SQL Azure Federations, however a federated database cannot be created by the Entity Framework."
"Federations simply bring in the sharding pattern into SQL Azure as a first class citizen. Sharding pattern is used for building many of your favorite sites on the web such as social networking sites, auction sites or scalable email applications such as Facebook, eBay and Hotmail. By bringing in the sharding pattern into SQL Azure, federations enable building scalable and elastic database tiers and greatly simplify developing and managing modern multi-tenant cloud applications," Micorsoft said.
Federations bring a great set of benefits to applications.
- Unlimited Scalability:
Federations offer scale beyond the capacity limits of a single SQL Azure database. Using federations, applications can scale from 10s to 100s of SQL Azure databases and exploit the full power of the SQL Azure cluster.
- Elasticity for the Best Economics:
Federations provide easy repartitioning of data without downtime to exploit elasticity for best price-performance. Applications built with federations can adjust to variances in their workloads by repartition data. The online repartitioning combined with the pay-as-you-go model in SQL Azure, administrators of the application can easily optimize cost and performance by changing the number of databases/nodes they engage for their database workload at any given time. And no downtime is required for this change.
- Simplified Development and Administration of Scale-out Database Systems
Developing large scale application is greatly simplified with federations; Federations come with a robust programming & connectivity model for creating dynamic applications. With native tooling support for managing federations and with online repartitioning operations for orchestrating federation at runtime, federations greatly ease management of databases at scale!
- Simplified Multi-Tenancy:
Multi-tenancy provides great efficiencies by increasing density and cost per tenant characteristics. However a static decision on placement of tenants rarely work for long tail of tenants or for large customers that may hit scale limitations of the single database. With federations application don't have to make a static decision about tenant placement. Federation provide repartitioning operations for efficient management of tenant placement and re-placement. ...And can deliver this without any applications downtime!
Detailed information on the SQL Azure Federations feature is available here.