Sunday, October 22, 2006

NCache and db4o

Matt is looking at NCache and Chris recommends db4o. Plus Geva is telling us to look at Gigaspaces.

Has anyone does an in-depoth comparison between NCache, db4o, Giga, Gemfire, Tangasol, and any others? Roll-your-owns are also welcome in the comparison.

Hey, hey Microsoft ... what 'ya got cookin'? How 'bout cooking something up for me? Here is the JCP-107 spec. Don't deviate too far from it.

©2006 Marc Adler - All Rights Reserved

3 comments:

Don Demsak said...

If you are talking about ASP.Net applications (and it seems as though NCache is marketing itself towards ASP.Net), use what comes out of the box, ASP.Net Caching. By caching the different UI elements, and not getting down into the domain, it short circuits a lot of unneeded overhead. You can even implement custom Cache dependencies, http://msdn.microsoft.com/msdnmag/issues/04/07/CuttingEdge/

If you do not want to cache the UI, and want to cache the domain objects, well, you can use the Cache Block in the Enterprise Library http://practices.gotdotnet.com/projects/entlib

If you are using SQL Server 2005, you can add SQL Cache Dependencies to your cached domain objects, and SQL Server will notify your cache that the underlying data store was changed and the cache needs to be recycled.

And for future stuff, you don't have to look no further than what the LINQ enhancements are bringing to C# 3.0 and VB 9.0. One of the improvements is what is called ADO vNext (aka ADO.NET Entity Framework, oe eSQL). I'll be giving a talk on this topic at the Nov. NJSQL meeting, or you can look me up at the next NJ Code Camp on Nov. 18, www.njcodecamp.org).

marc said...

Thanks Don.

By the way, our focus is totally WinForms.

When are you coming to join us?

Guy Nirpaz said...

What is the load that you expect? What is the data volume that you want to store in the cache?
Is the Cache read only, or is the data read/write?
What is the update rate?

These are some of the questions needs to be asked in order to give you a good answer on caching.

If you are talking about low-latency, high-throughput transactions (read/write) and large volumes - you may need distributed cache like GigaSpaces.

Guy