Does the AppFabric cache API (local, not Azure) use WCF as its communications mechanism? We are integrated AppFabric into a very high volume web application and seeing a ton of bottlenecks in some WCF calls. The profiler makes it seem like these are coming from our cache library, but they are all very low level system calls, so we are curious..
is appfabric cache accessed via a set of straight up set of TCP sockets connections? or are they some higher level protocols/designs that are layered on top of it? Appfabric has a lot of benefits beyond other providers (like memcached), but if there protocol overhead is so much on a high-volume system, we are worried it may cause problems.
thanks!
Yes it uses WCF under the covers. More specifically it uses binary message encoding over the tcp transport all with custom configured settings which I'm sure were selected by the AppFabric caching team after tons of load testing scenarios. It also has security enabled by default (transport and message signature/encryption) which will definitely add some CPU overhead. You can disable these if you're sure you're network design is secure.
Security tends to add a lot of overhead and, if you've provided a secure environment for your cache cluster/client apps, you should try to do away with it. Check out the section titled "Security Settings" on this MSDN page for more details on how to configure the client. Also check out the section titled "Cluster Configuration Storage Location Settings" on this MSDN page for details on how to configure security on the host (note: you can set these easily with the Set-CacheClusterSecurity
PowerShell command).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With