AppFabric Caching Physical Architecture Diagram (AppFabric 1.1 Caching)

Microsoft AppFabric 1.1 for Windows Server Caching features use a cluster of servers that communicate with each other to form a single, unified application cache system. As a distributed cache system, all cache operations are abstracted to a single point of reference, referred to as the cache cluster. In other words, your client applications can work with a single logical unit of cache in the cluster regardless of how many computers make up the cache cluster.

The primary components of the physical architecture consist of the cache server, the cache host Windows service, the cache cluster, the Windows PowerShell-based cache administration tool, the cluster configuration storage location, and the cache client. The following diagram shows how all of these elements relate.

"Velocity" physical model

Cache Hosts

The AppFabric Caching Service is a Windows service that runs on one or more servers. Each server that runs the Caching Service is referred to as a cache server. For each cache server, only one instance of the Caching Service can be installed.

Microsoft AppFabric 1.1 for Windows Server cache hosts should be dedicated to the caching service, which means that those servers are not also used as application, web, or database servers. It is possible to use non-dedicated cache servers in a cluster, but this scenario is not supported. Despite this policy, if you decide to use non-dedicated cache hosts, make sure to properly estimate and test the configuration for each cache host to allow enough memory and network resources for both the caching service and all other services on the machines. Also understand that spikes in processor and network utilization by other services will negatively impact the performance and stability of the cache cluster. For more information, see Windows Server AppFabric Caching Capacity Planning Guide.

We recommend that the cache server be a member of the same domain as the primary data source server used by your application. The Caching Service is installed to run under the Network Service account. This means that for operations over the network, the Caching Service uses the security credentials of the cache server's domain computer account. The Caching Service uses the lower-privileged Network Service account to help mitigate the damage that could be caused by malicious attacks. With Microsoft AppFabric 1.1 for Windows Server, you can also run the Caching Service as a domain account.

Cache Cluster

The cache cluster is a collection of one or more instances of the Caching Service working together in the form of a ring to store and distribute data. Data is stored in memory to minimize response times for data requests. The operations of the cache cluster are managed by a role, named the cluster management role. The primary responsibility of the cluster management role includes:

  • Keeping the cache cluster running at all times.

  • Monitoring the availability of all cache hosts in the cache cluster.

  • Helping cache hosts join the cache cluster.

Cluster management can be performed either by designated lead hosts or by storing the cluster configuration information in a SQL Server database. For more information, see Lead Hosts and Cluster Management.

High availability features are not supported unless all cache hosts in the cluster are located within the same data center. High availability between data centers cannot be guaranteed if one data center were to go down. In that case, both the primary and secondary copies of the data might reside on cache hosts within the same data center. Finally, in the scenario where cache hosts are spread between two data centers, the simultaneous loss of cache hosts in one data center could bring down the entire cache cluster. This is true even if the remaining servers in the other data center were sufficient to maintain the required quorum of running servers.

It is important that the cache cluster runs in a homogeneous environment of servers. It is not supported for cache hosts to have different physical specifications in memory, processor speed, and other capabilities.

Cluster Configuration Storage Location

Each time the cluster starts, it must retrieve configuration information from the cluster configuration storage location. The generic term "storage location" is used because the location is determined by how you choose to store the cluster configuration settings. The following table shows the three possible ways you can store cluster configuration settings and how those options relate to your cluster management choices.


Storage type Storage location Cluster management

XML file

shared network folder

lead hosts

SQL Server database

SQL Server

SQL Server (default) or lead hosts

Custom provider

custom store

custom store

For more information about choosing how to store the cluster configuration settings, see Cluster Configuration Storage Options.

Because the Caching Service runs under Network Service, it will not start if the domain computer account of the cache server does not have permission to access the cluster configuration storage location. The installation program will configure these permissions automatically. For more information, see Installing Windows Server AppFabric.

Windows PowerShell-Based Cache Administration Tool

Windows PowerShell is the exclusive management tool for the Cache Service. Windows PowerShell cache administration cmdlets can be installed on any domain computer or on the cache servers themselves. This is done by installing the Cache Administration feature of AppFabric. You must have Administrator privileges on all of the cache servers for the tool to function properly.

Use Windows PowerShell to start and stop the cluster, add and remove named caches, change configuration settings, and view statistics of the hosts and the cluster. For more details about these and other commands, see Cache Administration with PowerShell.

Cache Client

Any application server that is running a cache-enabled application may be loosely referred to as the cache client. For an application to be cache-enabled, it must use the AppFabric Caching assemblies and specify the appropriate application configuration settings programmatically or in an XML-based application configuration file. For more information about developing a cache enabled application, see How to: Prepare the Development Environment.

More specific to the application, the cache client is synonymous with the DataCache object that is created from the DataCacheFactory class to interact with the cache cluster. For more information about cache clients, see Cache Clients and Local Cache.

Security Considerations

The cache cluster contains a list of allowed client accounts that is managed with the Windows PowerShell-based cache administration tool. Any cache client that attempts to connect must be running with an allowed client account. Note that any accounts that are in the Administrators group on all of the cache servers are automatically permitted access to the cache cluster even if these accounts have not been explicitly added to the allowed client accounts list. For more information on this and other security options, see Security Model (Windows Server AppFabric Caching).

For production scenarios, AppFabric Caching features are only supported in a domain environment. However, for testing and development, it is possible to install and use AppFabric Caching features on computers in a workgroup environment.

See Also

Other Resources

Logical Model