« Load up your clouds just about right - need for capacity planning | Main | VS 2010 and Silverlight 4 Release »

Azure Table Storage Vs. SQL Azure

At the time of application design decision on Azure, most of us get into this discussion at some point in time, “Table Storage OR SQL Azure”.

I thought of listing down the pros and cons for both of these storage options. Following comparison might be helpful to drive the decision.

List down the expectations from the desired storage from application point of view and compare those requirements with the help of following table. 

Table Storage

SQL Azure

Pros

Cons

Pros

Cons

Provides scalability out of the box and supports approximate ~ 100TB storage

Every transaction (CRUD operation) is charged within the platform which might accumulate higher charges for high volume transactional systems

Transactions within the platform are not charged

Doesn’t provide scalability out of the box and there is a hard limit of 50 GB per database instance. Application need to handle the partition logic

More suited for developing highly scalable, high volume applications

Doesn’t support ACID characteristics of transaction across multiple entities/tables

Supports ACID characteristics of transaction across multiple entities/tables (but not across databases)

More suited for departmental applications

 

Single query can serve upto 1000 entities only, beyond that we need to use continuation logic in application

Doesn’t impose any limitation like this

 

Since application doesn’t have to build custom partition logic, effort to build such functionality in application is reduced

Inability to support seamless portability of an application between on-premise and Azure.

More suited to support seamless application portability  between on-premise and Azure

Since application has to build custom partition logic might incur sizable efforts to build such functionality

 

Doesn’t support relational data store & stored procedures etc.

Supports relational data & stored procedures etc.

 

 

No support for Spatial data type

Going to support spatial data type

 

Hope you find this information useful, any other points/suggestions/comments are most welcome.

 

 

TrackBack

TrackBack URL for this entry:
http://www.infosysblogs.com/apps/mt-tb.cgi/2066

Comments

Here is an interesting video session on this topic from Microsoft:

http://sqlbits.com/Agenda/event4/Comparing_Azure_storage_and_SQL_Data_Services/default.aspx

http://download.microsoft.com/download/6/8/7/687C09AC-0D0A-481E-AD69-7E5F9A566EE5/Comparing_Azure_storage_and_SQL_Data_Services.wmv

Apart from technical aspects, one should also look at the cost (rate) aspects on cloud - that gives direct monetary benefits if we use table storage - in some cases it would be million dollar project for just conversion.

"Doesn’t support ACID characteristics of transaction across multiple entities/tables"

That's not entirely correct. Azure Tables have Entity Group Transactions.

Christoph, Thanks for your comment.
In Azue Table Storage the ACID transaction is supported across only a single table. "Doesn’t support ACID characteristics of transaction across multiple entities/tables" from http://msdn.microsoft.com/en-us/library/dd894038.aspx.
The point which I am driving is "Doesn’t support ACID characteristics of transaction across multiple entities/tables" which is possible in SQL Azure where you can update mutiple tables in a single transactions.
Hope it clarifies.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.

Subscribe to this blog's feed

Follow us on

Blogger Profiles

Infosys on Twitter