======================================== Release Information Microsoft Project Code Named "Velocity" for Community Technology Preview 3 (April 2009) ======================================== This file contains late-breaking or other important information that supplements the product documentation. Read this file completely before installing this software. This file includes the following sections: *"Velocity" Introduction *Basic Installation Deliverables *"Velocity" Terminology *Installation Prerequisites *Basic Installation Steps *Other References *Known Issues ------------------------------- "Velocity" Introduction ------------------------------- Microsoft project code named "Velocity" provides a highly scalable in-memory application cache for all kinds of data. By using cache, you can significantly improve application performance by avoiding unnecessary calls to the data source. Distributed cache enables your application to match increasing demand with increasing throughput by using a cache cluster that manages the complexities of load balancing automatically. When you use "Velocity," you can retrieve data by using keys or other identifiers, named "tags." "Velocity" supports optimistic and pessimistic concurrency models, high availability, and a variety of cache configurations. “Velocity” includes an ASP.NET session provider object that enables storing ASP.NET session objects in the distributed cache without having to write to databases, which increases the performance and scalability of ASP.NET applications. For community technology preview 3 (CTP3), Microsoft project code named "Velocity" offers several enhancements and a new API. The enhancements include a cache notifications feature, performance improvements, security enhancements, and new cluster management options. There are also updates to the installation program. Perhaps the most material change for the "Velocity" administrator is that your options for editing the cluster configuration settings have been decoupled from your options for storing the cluster configuration settings. ------------------------------- Basic Installation Deliverables ------------------------------- The "Velocity" installation program installs the following on your designated cache server or development workstation: * The “Velocity” cache host service, running as Microsoft project code named "Velocity." * The PowerShell-based cache administration tool. * The “Velocity” API DLL files used for developing cache-enabled applications. * The “Velocity” documentation help (.chm) file. ---------------------------- “Velocity” Terminology ---------------------------- Cluster configuration storage location: There are two options available for storing cluster configuration settings: in a shared network folder or in a SQL Server 2005 or later database. You can choose the option that best meets the needs of your application and infrastructure. Cache Server and Cache Host: "Velocity" runs on one or more servers in the form of a Windows service, called the cache host service. Each server that runs the cache host service is referred to as a cache server, but you can install it on servers that perform other functions too, such as a Web or application server. In customer technology preview 3 (CTP3), each cache server has a single instance of the cache host service. Cache Cluster: The cache cluster is a collection of one or more instances of the cache host service working together to store and distribute data. ------------------------------------------------------------ Prerequisites: Preparing for the Cache Host Service Installation ------------------------------------------------------------ 1. Install .NET Framework version 3.5 SP1. 2. Install PowerShell version 1.0. 3. Prepare the cluster configuration storage location corresponding to the option you choose for storing your cluster configuration settings. For more information, see the Installation and Deployment section of the product documentation’s Administrative Guide. ------------------------------------------ Basic Installation Steps: Installing the Cache Host Service ------------------------------------------ 1. Click Next at the Welcome screen. 2. To accept the EULA, click "I accept...", and then Next. 3. After choosing the installation location, click Install. 4. Complete the Cache Host Configuration form: a. Storage location type dropdown: Choose where you would like to store your cluster configuration settings. For more information, see the CTP3 documentation topic: Administration Guide\ Configuration\Cluster Configuration Storage Options. b. Network path (for shared folder) or connection string (for the SQL Server database): *For the shared network folder option, specify the network path where the cluster configuration files should be located. All cache hosts need read and write access to this location. NOTE: Type the server path (for example, \\ServerName) before clicking the Browse button to start browsing from the context of a server. *For the SQL Server-based option, specify the connection string to the database. For example, when you use integrated security to connect to a database named ClusterConfigurationDB on a server named SQLServer1, the connection string looks like this: Server=SQLServer1;Database=ClusterConfigurationDB;Trusted_Connection=true. 5. Click the Test Connection button to verify the path or connection string. 6. If you want to create a new cluster, click Yes (if asked). 7. Complete the Cache Host Configuration form: a. Cluster Name: Specify the name of the cache cluster that this cache host will join. The name must be one word, with no spaces or special characters. b. Cluster Size: Specify the number of cache hosts that are planned to be members of the cache cluster, including this one. c. Service port number: Specify the network port that the cache host will use for transmitting cache data. This is also referred to as the cache port number, and should be different from the cluster port number. The default value is 22233. d. Cluster port number: Specify the network port that the cache host will use for transmitting the cluster heartbeat. This should be different from the Cache Port Number. The default value is 22234. e. Max Cached Data Size: Specify the maximum amount of memory that the cache host service can allocate for storing data when it starts and while it runs. The default value is based on 50% of the available memory on this server. f. Click Save & Close. 8. Click Finish to complete your installation. When the installation is complete, you can begin developing “Velocity” applications and interacting with the cluster using the PowerShell-based cache administration tool. For more information, see the Installation and Deployment section of the product documentation’s Administrative Guide. ------------------------------- Other References ------------------------------- 1. The “Velocity” documentation provided with this installation provides detailed information about the “Velocity” product. The documentation may also be downloaded independent of the installation. 2. Refer to the “Velocity” blog as a reference for late-breaking information about the “Velocity” product and which might include additional information and product details. The "Velocity" blog URL is http://go.microsoft.com/fwlink/?LinkID=147571 ------------------------------- Known Issues ------------------------------- Please refer to the “Velocity” blog for late-breaking known issues. 1. Upgrading to "Velocity" CTP3 from a previous release is not supported. Before installing "Velocity" CTP3 on any cache hosts, uninstall “Velocity” from all cache hosts that have installed a previous release of the product. Uninstall the previous “Velocity” release by performing the following actions: a. Uninstall the previous release of "Velocity" from all cache hosts. b. Remove application-specific firewall exceptions for "Velocity." c. Remove all permissions granted to the Everyone security identity. d. Remove all configuration files or SQL Server tables that were used for configuration settings with the previous release. 2. When installing a new CTP3 cluster, reusing cluster configuration settings from a previous installation is not supported. When preparing a shared network folder-based cluster configuration, delete the contents of the path or specify a new storage location. When preparing a SQL Server-based cluster configuration, delete the entire database or all tables inside the database that are used for cluster configuration settings. 3. The class library documentation for AdminPS.dll is missing descriptions for all members. This is the assembly used for PowerShell-based cache administration. 4. When using the Import-CacheClusterConfig command to edit your cluster configuration, you can change cluster configuration settings (XML attributes) in the XML file, but adding or removing named caches and cache hosts by inserting or removing XML elements is not supported. To add or remove named caches, use the PowerShell cache administration tool. To add or remove cache hosts, use the "Velocity" installer. For more information about editing configuration settings, see the product documentation topic: Administration Guide\Configuration\Configuring the Cache Cluster. 5. When selecting a network shared folder-based cluster configuration, the operating system that is used to host the shared folder may limit the number of concurrent connections to the folder. In such cases, it is not supported to have the number of cache hosts in the cluster exceed that limit. Windows XP, Windows Server® 2003, and the 32-bit version of Windows Vista® do not allow more than 10 concurrent connections to a shared network folder. We do not recommend that you use these operating systems to store the cluster configuration settings for large clusters. 6. On Windows Vista and 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. 7. In order for the PowerShell-based cache administration tool to function correctly, the user account running PowerShell needs Administrator permissions on all cache servers in the cluster. 8. Changes in cache configuration from the PowerShell cache administration tool are not propagated to the client, specifically in the case of enabling or disabling the cache notifications feature for a named cache. For example, if the cache notifications feature is disabled on a named cache after a cache client has already started working with cache, the client may successfully add a cache notification callback, but will not receive any notifications. 9. The .NET Framework version 3.5 SP1 is required on the cache server. Without SP1, you may not be able to run the “Velocity” installation program directly from a shared folder. Instead, the installation program must first be copied to the cache server prior to installation. 10. After the cache client adds a cache notification callback, the first time a cache notification is triggered, the client will receive all the notifications in the notification queue that meet the filter parameter and notification scope of the callback. After the first time a cache notification is triggered, the client will only be notified of new cache operations pertaining to the callback. The workaround is to store the version of your cached object in your application, then only act on the cache notification if the version provided in the parameter of the DataCacheNotificationCallback delegate is newer than the version stored in your application. Note: version comparisons are only meaningful when comparing versions of the same object. 11. When using SQL Server to perform the cluster management role, you must wait three minutes after stopping the cluster before starting an individual cache host. This does not apply to using the Restart-CacheCluster command with the PowerShell based cache administration tool. 12. When running “Velocity” on x64-based computers, the x64 installation of SQL Server Compact 3.5 SP1 is required. If you have the 32-bit version of SQL Server Compact 3.5 SP1 installed prior to installing “Velocity,” PowerShell may throw the exception: "Unable to load DLL 'sqlceme35.dll'." The cache host service may also have problems with the 32-bit version of SQL Server Compact 3.5 SP1 when using a shared network folder to store your cluster configuration settings. To resolve these issues on an x64-based computer, install SSCERuntime-ENU-x64.msi. This installation file can be found on the Microsoft Download site by searching for "Microsoft SQL Server Compact 3.5 Service Pack 1 and Synchronization Services for ADO.NET version 1.0 Service Pack 1 for Windows Desktop." The URL for this download is: http://go.microsoft.com/fwlink/?LinkID=123282 13. “Velocity” CTP3 uses the cache server Network Service account for running the cache host Windows service. If your cache servers are not members of a domain, perform the following procedure to set up permissions for the cache cluster. Create a local account that has the same password on all cache servers and the server hosting the cluster configuration storage location. Then set the cache host service to run with the credentials of the local account and grant the local account the necessary permissions to the cluster configuration storage location. For more information about the necessary permissions, see the production documentation topics: Administration Guide\Installation and Deployment\Installation Overview. 14. If you store your cluster configuration settings in a SQL Server database, when uninstalling “Velocity,” the installation program may not successfully remove permissions that have been granted to the cache server on the instance of SQL Server and the configuration settings database. 15. To optimize performance, “Velocity” least recently used (LRU) eviction is not perfect LRU. With “Velocity” LRU, inactive items are removed earlier than recently active items. Inactive items are defined as those items which were accessed a long time back. Recently active items are defined as those items that were accessed very recently. It may be possible that some inactive items are evicted before other inactive items—even if they were accessed more recently than the other inactive items that are not yet evicted. 16. When you add an item-level callback for the RemoveItem cache operation of an item that is stored in a region, you may receive a false notification if you also add a callback for a RemoveRegion or ClearRegion cache operation on the same region. When the RemoveRegion or ClearRegion operations trigger a notification callback, they also trigger any item-level callbacks that have been added for items in those regions – even if those items are not currently in the cache. If you receive a notification an item that is not currently in the cache, that notifications is considered a false notification.