First Shard for SQL Azure and SQL Server

Posted by Herve Roggero on Geeks with Blogs See other posts from Geeks with Blogs or by Herve Roggero
Published on Tue, 01 Jun 2010 04:04:16 GMT Indexed on 2010/06/01 4:23 UTC
Read the original article Hit count: 240

Filed under:

That's it!!!!! It's ready to go and be tested, abused and improved! It requires .NET 4.0 and uses some cool technologies, like caching (the new System.Runtime.Caching) and the Task Parallel Library (System.Threading.Tasks).

With this library you can:

  • Define a shard of 1, 2 or 100 SQL databases (a mix of SQL Server and SQL Azure)
  • Read from the shard in parallel or sequentially, and cache resultsets
  • Update, Delete a record from the shard
  • Insert records quickly in the shard with a round-robin load
  • Reset the cache

You can download the source code and a sample application here: http://enzosqlshard.codeplex.com/ 

Note about the breadcrumbs: I had to add a connection GUID in order for the library to know which database a record came from. The GUID is currently calculated on the fly in the library using some of the parameters of the connection string. The GUID is also dynamically added to the result set so the client can pass it back to the library. I am curious to get your feedback on this approach.

** Correction from my previous post: this is a library for a Horizontal Partition Shard (HPS): tables are split across databases horizontally. So in essence, the tables need to have the same schema across the databases.

© Geeks with Blogs or respective owner