3
votes

After doing some initial research into using Appfabric for caching, my understanding is that the configuration provider for the cluster is a single point of failure as mentioned here:

MSDN

I want to use appfabric just for distributed caching, particularly for the tagging features. What are the options to avoid having the configuration provider as this failure point? I thought of two but not sure if one is better or if there are any other options.

(1) Create my own caching service configuration provider. I'm guessing this is possible (?) but I'm not sure how to go about it. I'd probably make a provider that fetched the xml file from S3 since I'm already using AWS.

(2) Configure each cache as a single node cluster and then create a proxy client that uses the individual nodes as a distributed cache, a la a memcached type client.

Thoughts or recommendations, or anything else I should consider in making this decision?

2

2 Answers

3
votes

Yes, it is a single point of failure.

Microsoft's recomended solutions seem to be:

  • (SQL Server provider) Use SQL Server clustering. In my limited experience of it, using SQL Server clustering for this is probably a case of 'the cure is worse than the disease' i.e. it brings a lot of pain. Unless you've already got a SQL Server cluster available, avoid!
  • (XML provider) Use Windows Server clustering. I have even less knowledge of this than SQL clustering, so I can't say how well (or otherwise) this might work. It doesn't strike me as a trivial thing to do, though.

You can create your own configuration provider by implementing the ICustomProvider interface and making some registry entries. Using AWS seems like a really good idea to make the config provider resilient, I'd be interested to see how you got on with this.

Creating a proxy client seems to me like you'd be making a lot of work for yourself, at that point it feels like you'd be more fighting against AppFabric rather than working with it.

1
votes

We have also tried AppFabric but it gave us fair few headaches like for one there's no API access which is making it very difficult to use our current unit testing strategy. We have now moved to NCache that is better option than AppFabric. NCache provides tagging feature and it is not a single point of failure.