Scalability in SQL Azure

Posted by Dhananjay Kumar Articles | SQL May 18, 2011
Federation is introduced in SQL Azure to help both administrators and developers to scale data.
Reader Level:

Federation is introduced in SQL Azure for scalability. Federation helps both administrators and developers to scale data. It helps administrators by making repartitioning and redistributing of data easier. It helps developers in the routing layer and sharding of data. It helps in routing without application downtime.
Federation does basic scaling of objects in a SQL Azure Database. Federations are the partioned data. There can be multiple Federations within a database. And each Federation represents a different distribution scheme.
We create a Federation with a different distribution scheme and requirement. Student and Grades tables of a School Database may have a different distribution requirement so they are put into different Federations.
Each Federation object scales out data to many system managed nodes. A Federation object contains:

Federation members are managed directly by federation while data are partitioned. All Federation objects are stored in a central system Database called a Federation Root. Each Federation object is identified by a Federation Distribution key.
A Federation key is used for partitioning the data. A Federation key represents a distribution style and data domain.
Data is being scaled out by Atomic Unit. All Data of a particular Atomic Unit stick together. An Atomic Unit can be separated and all the rows of a particular partition key remain and are distributed together.
An Atomic Unit is an instance of a Federation key.

Let us create a Federation with respect to a School Database. We are creating a Federation on a Student table called Federation_Student.

So now any row in the Student table with Roll Number between 100 to 1000 will be an Atomic Unit for scalability.