Episode 69 - SQL Azure Federations with George Huey
- Posted: Feb 03, 2012 at 10:58 AM
- 46,422 Views
- 6 Comments
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
Right click “Save as…”
Join Wade and Steve each week as they cover the Windows Azure platform. You can follow and interact with the show at @CloudCoverShow.
In this episode, Wade is joined by George Huey—Principal Architect Evangelist for Microsoft—to discuss how to scale-out with SQL Azure Federations. George is the author and creator of the SQL Azure Migration Wizard and the SQL Azure Federation Data Migration Wizard.
In the news:
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums,
or
Contact Us and let us know.
Follow the Discussion
Oops, something didn't work.
What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in. You need to be signed in to Channel 9 to use this feature.What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in and view them all on your notifications page.sign up for email notifications?
SQL Azure Federations could be great. What's the deal with having to specify which shard to access using the USE FEDERATION statement?
As I see it, it doesn't make much of a difference in having to incorporate these statements in every sql-statement and actually having n number of different connection-strings in your code. The only real functionality given here is that it's easy to scale out your database to many shards, and that's it. Going from SQL Aure to SQL Azure Federations still requires you to significantly change your code.
Honestly, I think that the SQL Azure Federation story today is weak. There needs to be a higher abstraction level so that you don't need to handle the different shards in your code. Isn't this obvious?
Hi There, Thanks for the feedback.
I do understand folks who come from SQL Server with a single database setup need to change code to move into federations. In future we would like to make this much easier and more transparent but the goal with federations is to address a scale target much beyond what a single database or a centralized scale-out database could achieve. Federation also needs to deliver this with the new economics of the cloud; eliminate overcapacity with elasticity.
I would love to hear your thoughts on what we should work on next in federations to get it closer to what you need.
One part I am unclear on is "n number of connection strings with USE FEDERATION" comment. We require a connection string in the app to a single endpoint and that is the root database. Would be great if you can expand on that. if you prefer a private email I am cihan.biyikoglu@microsoft.com or @cihangirb on twitter.
Many Thanks
Hi Cihan! Thanks for answering my post
DELETE Customers WHERE CustomerID IN (X, Y, Z)
without having to worry if X, Y, Z is in the same shard or not. Why not just distribute out the sql command to all shards and join them together before my SqlCommand gets the results back? I see that this might hurt performance, but not necessarily! It's faster to let 3 servers process this command in parallell than to have it execute in only one server if your dataset is huge. In the very least let there be an option to do it, and let developers have the option to choose simplicity vs. performance.
@Cihan Biyikoglu: See my comment in the post below.. Forgot to reply to your post.
Also, if it's possible at all, I would love to get some hints as to where sql azure federations is going form now. This could be a database-killer app as I see it!
Thanks for the comments Hans.
#1 above; abslutely. we'll certainly make these options available.
#2 USE FED has a few benefits; one of them is preventing connection multiplexing or pool fragmentation. real big problem when compute and db node count gets large; http://blogs.msdn.com/b/cbiyikoglu/archive/2012/02/08/connection-pool-fragmentation-scale-to-100s-of-nodes-with-federations-and-you-won-t-need-to-ever-learn-what-these-nasty-problems-are.aspx
Another benefit of USE FED is the ability to switch connections without disconnects. So a single thread does not have to keep handing around connections and can simply repeat USE FED to do this.
Aside from all that, the benefit of USE FED is when the ONLINE repartitioning kicks in. There is a ton of race conditions on where to route your connection the moment a FED SPLIT or a FED DROP completes. USE FED makes that simply worry free and garantees you will be sent over to the right DB at any moment in time. You can imagine how important that will be especially when repartitioning becomes online.
@Cihan Biyikoglu:
Thanks for your answer and your excellent blog post! I'm currently working with a relatively small dataset (only 80 GB database on-premise) and sharding up to hundreds of nodes is a whole other story. In this space SQL Azure Federations is truly a lifesaver!
But SQL Azure Federations could become the cloud database-solution numero uno or the de facto standard! If it just works out-of-the-box for small federations upto like 10 shards. I would guess that 90% of real-world databases would fit in this category, or maybe even with fewer shards?
Anyways; Thanks a lot for the input, Cihan!
Remove this comment
Remove this thread
close