Share via


Physical Model (Velocity)

[This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]

Microsoft project code named "Velocity" consists of 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 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.

Note

"Velocity" is designed to be operated on a corporate domain, within the perimeter of the corporate firewall. Communications between cache servers and cache hosts is not encrypted and is vulnerable to malicious network "sniffing" and "replay" attacks. Installing "Velocity" on computers that are not a member of any domain is not supported.

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

Dd631087.05a5ceeb-bd79-412d-91ea-06f35c87cdce(en-us,SQL.100).gif

Cache Hosts

"Velocity" runs on one or more servers in the form of a Windows service, named the cache host service. Each server that runs a cache host service is referred to as a cache server, but you can install "Velocity" on servers that perform other functions too, such as a Web or application server. For each cache server, only one instance of the cache host service can be installed.

We recommend that the cache server be a member of the same domain as the primary data source server used by your application. The cache host service is installed to run under the Network Service account. This means that for operations over the network, the cache host service uses the security credentials of the cache server's domain computer account. "Velocity" uses the lower-privileged Network Service account to help mitigate the damage that could be caused by malicious attacks. For more information about installation, see Installation and Deployment (Velocity).

Cache Cluster

The cache cluster is a collection of one or more instances of the cache host 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.

The cluster management role can be performed by SQL Server or special cache hosts referred to as the lead hosts. For more information, see Lead Hosts and Cluster Management (Velocity).

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 two possible ways you can store cluster configuration settings and how those options relate to your cluster management choices.

Storage type Storage location Cluster management

SQL Server Compact data file

shared network folder

lead hosts

SQL Server database

SQL Server

SQL Server (default) or lead hosts

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

Because the cache host 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 Installation and Deployment (Velocity).

PowerShell-Based Cache Administration Tool

PowerShell 1.0 is the exclusive management tool for "Velocity." Because "Velocity" installs the PowerShell cache administration cmdlets on each cache server, you can administer the cache cluster from any of the cache servers. You must have Administrator privileges on all of the cache servers in order for the tool to function properly.

Use 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 (Velocity).

Note

On Microsoft Windows Vista and Microsoft Windows Server 2008 operating systems, you must right-click the "Velocity" PowerShell shortcut and select Run as administrator for the cache administration tool to work correctly.

Cache Client

The "Velocity" distributed cache cluster is designed to be used by application servers in the corporate datacenter and deployed within the perimeter of the corporate firewall. 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 "Velocity" distributed cache 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 (Velocity).

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

Security Considerations

Cache clients should be used only by applications residing on application servers in your datacenter, within the perimeter of the corporate firewall. Communications between cache servers and cache hosts is not encrypted and is vulnerable to malicious network "sniffing" and "replay" attacks.

We highly recommend that you secure the XML-based application configuration files used to specify the cache client. Data in the cache is not encrypted and is available to any cache client that has the appropriate configuration settings.

See Also

Concepts

Cache Clients and Local Cache (Velocity)
Logical Model (Velocity)
TCP/IP Communications (Velocity)
Programming Model (Velocity)
Configuration Model (Velocity)