Question

I wonder if anyone has tried velocity in a production environment. It is in CTP2 version right now, and we are thinking of using it. Has anyone tried it? If yes was it a positive experience?

Was it helpful?

Solution

My personal take on this would be that you should use Memcache till Velocity stabilizes. .net clients for Memcache like Enyim have stood the test of time and used by many.

  • Use a provider independent CacheManager
  • Implement one for memcached.
  • Tomorrow if things change and you still want Velocity, change the provider.

After all, these are just dictionaries and your domain code should be independent of the infrastructure.

Related: A simple CacheManager interface for C#,
My answer to Memcache on Windows.

OTHER TIPS

Yes! Velocity 1.0 has been released as a part of AppFabric. You can download it from Microsoft.

I am hoping that the points I make here may help someone. We're in process of deploying AppFabric on our systems and have noticed a couple of things that need improvement:

  • The documentation is outdated in most cases. You'll find details on certain blogs, but usually mixing and matching stuff from various sites will give you the details you need. Still not very happy with the standard of documentation.
  • Troubleshooting is another issue. 90% of the times, you'll be dealing with install related issues. There are certain things that should've been documented from the get go to help trouble shooting, but never were thereby end up costing a lot more time getting it up and running than you might think.
  • As far as the performance is concerned, I am almost certain that it isn't as fast as Memcached. Someone could prove me wrong, but until then, Memcached is the king of distributed caching.

Now here are some issues that I found a little troublesome:

  • Dynamically adding/removing nodes
    to/from a cache cluster isn't as easy as they make it sound. I have read
    numerous complaints regarding the
    same on the forum. I haven't tried this yet, but you can read about it on the forums. There are some real issues.

  • Throttling is another issue. In cases where the memory of the Lead Cache
    Cluster hits a high percent, the Caching just fails. This posed a tremendous problem for us since we were using the session provider and people started getting errors.

    Turns out, SQL Server and AppFabric shouldn't be put on the same box as SQL Server does tend to hog a lot of memory. What perplexes me is the fact that I had multiple nodes, but the Lead Cache had a memory issue and it didn't distribute it around. In my case, I only had one node and SQL Server and AppFabric were obviously on the same node due to the availability of a single server. Caching just fails in scenarios like these. If you have a backup running, you will notice that Caching will fail on that node because the memory usage on that box goes really high.

In my opinion, there are things with the product that make me feel like it was a little rushed. There are other products out there that we have previously used like ScaleOut that work much better until AppFabric matures.

Other than that, I think MSFT has done a decent enough job of providing us with something that can be used. Having something is better than having nothing, considering Memcached has provided such a great cutting-edge technology.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top