In memory aggregations in .Net

Very interesting idea brought up by Jamie (http://blogs.conchango.com/jamiethomson/archive/2009/04/08/programmable-in-memory-aggregations.aspx) and one that i've been thinking about a few months ago after using LINQ to do aggregations.

Before LINQ writing code that aggregated data up was ugly, you had to write a lot of plumbing code to store the key buckets and the aggregates. Now with LINQ its very easy to do aggregate queries to get things like sum of sales by year and count of sales by year into one list.

The downside is that whilst the code is simple there is no magic under the hood making this perform any better than if I did the code myself. In fact it will likely be slower as the LINQ stuff is generics based and so can't use some of the optimisations you could use if you did the code your self. Whats key is that its currently not parallel (although I'm not sure what PLINQ brings to the table)

Gemini, as John's comment on Jamies post mentions, is an in memory Analysis Services object. So the question has to be whether one would be able to embed that into your own application? Any comments Donald?


-
Published 09 April 2009 11:48 by simonsabin
Filed under: ,

Comments

09 April 2009 13:23 by jamiet

# re: In memory aggregations in .Net

I was fishing for a comment from Donald too :)

He hasn't bitten as yet!!

10 April 2009 04:20 by jwelch

# re: In memory aggregations in .Net

Phil? Do we write that much alike?

10 April 2009 08:10 by simonsabin

# re: In memory aggregations in .Net

Are you not the same person ? I always thought it odd not to see you in the same room as one another :)