Team Foundation Server Proxy and Source Control
The Team Foundation source control proxy is designed to boost network performance by caching copies of source control files in a remote location, local to the developer needing the files but away from the main source control location. By storing copies in the remote location, typically connected to the source location through a slower link than your local area network, the proxy helps each individual user avoid a costly download of the files to their workspace across the slower connection.
Instead, the source control proxy generally serves client requests by returning the files from the local cache over the quicker local connection. When a file is not in the local cache, the file is downloaded by the proxy to the local cache from Team Foundation Server, before returning the files to the client.
The operations of the proxy can be seen through the client side and the server side. Like any internet proxy, you configure your client to use the proxy, and then the proxy itself controls the administration of the files. As a user of the client, you let the proxy control the downloading files.
On the server side, as the administrator, your first task is to set up the proxy. You then configure the proxy by editing the proxy.config file. Once these two tasks have been undertaken, you need only to perform occasional maintenance.
A maximum limit is set on the amount of storage space the proxy can use for caching files. When this limit is reached, old files in the cache are deleted to free up some storage space so that the space can be used for caching newly requested files. Cleanup removes the files based on when they were last accessed. Files that have not been served for the longest time are deleted first.
The proxy itself requires very little administration or maintenance. However, you should periodically monitor and manage the performance. You should observe the following performance counters:
- Current Cache Size
- Total Cache Hits – count and percentage
- Total Download Requests
- Total Files in Cache
- Total Cache Miss – count and percentage
These performance counters are registered as part of the proxy install. The proxy performance counters are multi-instanced; meaning there is a set of counters for each application-tier that you have configured in the proxy.config file.
By collecting this data, you get an understanding of the performance when the proxy server is running. Performance counters such as these play an important role in understanding the health and optimizing all aspects of Team Foundation Server.
The source control proxy uses a pre-authenticated ticket scheme for determining whether a requesting user is authorized to view the content of the requested file. In this scheme, the user’s client contacts the master source control server and if the user is authorized, the client is provided a digitally signed ticket containing the details of the file being requested. The client then presents the ticket to the proxy server. This use of public/private key signatures allows the proxy to be certain that the ticket came from the server and that the user is therefore authorized to view the file. The proxy then looks into the cache to see if it can service the request, and if not, requests the file from the server and adds it to the cache.