Geeks With Blogs
Edward Gnatiuk - .NET Project Management and Development SouthFloridaDev.com (Blog), @eddyworx (Twitter)

An open source library and full product have been developed for transparently splitting large tables across several databases for performance, similar to database table partitioning.  It is all handled along with the Linq to SQL framework, and looks pretty slick, I will be reviewing the product shortly.  It looks mostly transparent to the developer!  There are other capabilites worth a look.  This looks like it works for azure as well.

Here are some links: 

http://enzosqlshard.codeplex.com/
 

http://enzosqlbaseline.com 
 

https://scale.bluesyntax.net
 

I will be reviewing this and other Linq to SQL libraries soon.

Posted on Saturday, February 5, 2011 8:58 AM | Back to top


Comments on this post: Another Linq to SQL product, Enzo Multitenant Framework

# re: Another Linq to SQL product, Enzo Multitenant Framework
Requesting Gravatar...
I had donwloaded the Enzo several months ago and it's a cool stuff for database sharding. It utilized the round-robin to disreibute the records across the shardings. But I think it's some extension methods for the SqlDataComment rather than LINQ2SQL. Did it updated or the different thing you mentioned?
Left by Shaun on Feb 08, 2011 2:12 AM

# re: Another Linq to SQL product, Enzo Multitenant Framework
Requesting Gravatar...
You are more correct than I am so far, that is what I have seen. I should have said that it works with LSQL (not EF BTW). Here are some examples fron the author.

// no call yet
var query = from o in context.LogDatas
where o.CPU > 0
select o;

// no call either… still querying
IEnumerable<LQ.LogData> logs2 = query.Where(p => p.Reads > 0);

// Now the call is made – must call one of the overloads that fetches data provided by us
foreach (LQ.LogData l in logs2.Fetch(context))
System.Diagnostics.Debug.WriteLine(l.CPU.ToString());

//Example for updating: no breaking change there…
LQ.LogData logs3 = query.Fetch(context).Single(p => p.RowNumber == 28);
logs3.ApplicationName = "SCOTT - " + System.DateTime.Now.Second.ToString();
context.SubmitChanges(); // Commits to shard automatically

The only change here is that you must make the call to populate collection, where LSQL you do not.

I will update as I review more.
Left by Ed on Feb 09, 2011 9:51 AM

Your comment:
 (will show your gravatar)


Copyright © Ed Gnatiuk | Powered by: GeeksWithBlogs.net