How does the TFS Proxy Server work?

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.

Published 22 July 08 03:08 by grantholliday
Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# a-foton » How does the TFS Proxy Server work? said on July 22, 2008 6:43 AM:

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

# Grant Holliday's blog said on August 6, 2008 10:38 AM:

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

# Rajendra said on September 25, 2008 8:52 AM:

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

# grantholliday said on September 25, 2008 5:27 PM:

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

# Rajendra said on September 26, 2008 6:33 AM:

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.

# Rajendra said on September 26, 2008 6:35 AM:

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

# grantholliday said on September 26, 2008 9:56 PM:

@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.

# Niraj said on December 14, 2008 3:29 AM:

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?

# hakteng said on February 5, 2009 4:08 AM:

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

# grantholliday said on February 5, 2009 12:56 PM:

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

# hakteng said on February 5, 2009 11:37 PM:

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!

Leave a Comment

(required) 
(optional)
(required) 

  
Enter Code Here: Required

Search

This Blog

Syndication

Page view tracker