Writing a SQL Azure Book - Notes

Over the last few months I have had the opportunity to ramp up significantly on SQL Azure.  In fact I will be the co-author of Pro SQL Azure, published by Apress. This is going to be a book on how to best leverage SQL Azure, both from a technology and design standpoint. Talking about design, one of the things I realized is that understanding the key limitations and boundary parameters of Azure in general, and more specifically SQL Azure, will play an important role in making sounds design decisions that both meet reasonable performance requirements and minimize the costs associated with running a cloud computing solution.
The book touches on many design considerations including link encryption, pricing model, design patterns, and also some important performance techniques that need to be leveraged when developing in Azure, including Caching, Lazy Properties and more.
Finally I started working with Shards and how to implement them in Azure to ensure database scalability beyond the current size limitations. Implementing shards is not simple, and the book will address how to create a shard technology within your code to provide a scale-out mechanism for your SQL Azure databases.
As you can see, there are many factors to consider when designing a SQL Azure database. While we can think of SQL Azure as a cloud version of SQL Server, it is best to look at it as a new platform to make sure you don’t make any assumptions on how to best leverage it.

Print | posted @ Saturday, March 13, 2010 11:47 AM

Comments on this entry:

Gravatar # re: Writing a SQL Azure Book - Notes
by sebastian at 3/13/2010 12:59 PM

I think you are right in a way, but MSFT wants us to think of SQL Azure as SQL Server on the cloud, for migration purposes. The performance problems you may encounter while in SQL Azure are the same problems you would have if your SQL Server was not running so close to the app server.
So you problably already have a design problem that you didn't see before.
Just my opinion
Gravatar # re: Writing a SQL Azure Book - Notes
by Herve at 3/13/2010 1:53 PM

Thank you for your feedback. I respect your opinion. Allow me to expand on a couple of things.

You are partially correct when you say that similar performance problems apply in SQL Server and SQL Azure - for example I expect CURSORS to behave just as badly in both environments. However I am referring to a whole new set of boundaries and limitations that do not exist in SQL Server that are not initially obvious to the untrained eye.

For starters there is a throttling mechanism that kills connections if a SQL statement consumes too many resources; so long running statements/procs can create a new condition: loss of database connection in unusual places in your code. In addition the link to SQL Azure is 100% SSL which cannot be disabled (in SQL Server that is an option that needs to be enabled past the pre-login sequence) - this "always encrypted far-link" will kill the performance of systems that are chatty in nature (such as DNN). Not to mention that you loose control over all the SQL Server configuration parameters including affinitization of CPU, IO, memory allocation and just about everything else. And that's just to name a few.

So assuming that SQL Azure and SQL server are the same when it comes to performance and hence keep the same design patterns may quickly come to a surprise. Hence my recommendation to look at it as a new platform to avoid running into this kind of assumption.
Comments have been closed on this topic.