How does the TFS Proxy Server work?

Grant Holliday’s blog

Senior Service Engineer, Microsoft Visual Studio Team Foundation Service

How does the TFS Proxy Server work?

  • Comments 12

Also see the Team Foundation Server Proxy 2008 FAQ and Team Foundation Server Proxy 2008 Self-Help Troubleshooting Guide put together by Tsu-Wang Yang.

Q. How often does the proxy server synchronize with the server? Is it a continuous synchronization as soon as a change happens, or do the contents get transferred to the proxies when they’re required for synching the first time?

A. The proxy gets populated with an item the first time someone requests that item at a particular version. It's not a continuous synchronization/replication.

The first time a proxy user gets a version of an item that doesn't exist in the cache yet, it will obviously take longer than if it is in the cache already (a "cache hit").

You can monitor how much work your proxy server is doing by using the Performance Monitor Counters included in the product. See Monitoring Performance.

Counter Name Description
Current Cache Size(Bytes) The current cache size.
Total Download Requests The total number of download requests that come to the proxy server.
Total Cache Hits The total number of download requests served from the file cache.
Total Files in Cache The total number of files available in the cache.

You can also use the TfsServerManager.exe tool included in the latest Team Foundation Power Tools. You'll find it at:

C:\Program Files\Microsoft Team Foundation Server 2008 Power Tools\TfsServerManager.exe

TFS Proxy Status from TfsServerManager.exe

Q. Does the data to be synced get compressed/uncompressed before/after the transfer?

A. The answer to this is in Buck's post on Working remotely with TFS Version Control.

Every file that we upload as part of checking in or shelving is compressed using GZip.  If a file is larger after being compressed, which may be due to it being in a compressed format (e.g., ZIP or JPEG) already or being encrypted, the file will be uploaded without being compressed.  When files are downloaded, they are still compressed as they were when they were uploaded.

 

Communication between the client and server in TFS uses HTTP for everything, and it uses SOAP for everything other than file uploads and downloads.  We support IIS 6 compression of the SOAP, so the communication with the remote server is compressed.  Since SOAP is XML, responses compress very well.

  • PingBack from http://blog.a-foton.ru/2008/07/how-does-the-tfs-proxy-server-work/

  • Both a TFS Proxy server and a TFS Application Tier include a Version Control cache on disk. This allows

  • If main TFS server is down, can we work on TFS proxy?

  • @Rajendra, no - because you still need to do the Get() and UpdateLocalVersions() calls to the main TFS server.

  • Hi,

    Is it not cache on Proxy? If yes, then I can get it from proxy. If not, it means that Proxy is used only for seedup the operations.

  • Sorry for typo mistake... I mean Speedup not seedup

  • @Rajendra - Yes the file is stored on the proxy. But there is no way for you to know which file it is.

    The proxy's primary purpose is to speed up operations, it doesn't help with availability.

  • So do the updates happen to proxy or directly to main server? If they happen to proxy when does it get sync? Are there any settings for the same? Does proxy check every time when retriving a version that a later version is available?

  • Q. What happens in a check-in?  Does the file get check-in to the Proxy or TFS Main Server?

  • @hakteng - On a check-in, the proxy server is not used. The client sends the data directly to the main TFS server.

  • Thanks Grant for your reply.  I assume SHELVE goes direct to the main TFS server too.  Please correct me if it is wrong.  Hmm.. check-ins are not done so frequently, so sending direct to main TFS server is "forgivable".   However, SHELVING is done frequently, each developer will do it at least once a day, would it be a point of concern?  SHELVING a days' work could contain many files for just 1 developer!

  • Thanks, Grant for posting information of TFS proxy server.

Page 1 of 1 (12 items)