September '08 DevDiv TFS Dogfood Statistics

Brian Harry

Well, I let it happen again :(.  It’s been over two months since my last report on this and my blog has gone sadly quiet in general.  As I’d mentioned before, it’s been an unbelievably busy summer but I think I’m finally coming out of it.  With luck you’ll see quite a few posts this week and then my stream of 3 or 4 a week resume.

It has also been a very busy period for dogfooding.  Pretty much the entire division is on TFS now and it’s been an exciting time.  One of the things that we’ve learned over the past several months is that having almost 3,000 people with almost 400,000,000 files in hundreds of branches and dozens of muli-hundred thousand file merges each day puts an inordinate strain on TFS.  For the past couple of months we have been working on a fairly significant rework of the way TFS handles renames, deletes and the subsequent merging of those actions.  These changes will ship in our Rosario release.  Most people will not notice any differences but if you are deep into configuration management, you will.  In a few months, I’ll explain exactly what those changes are and how you will identify them.  We believe, however, that these changes will make a significant performance and experience difference for customers with the largest and most complex configuration management challenges.

In addition to that, we have embarked upon several features that have become bit issues internally, including:

  • Public workspaces – The ability to mark a workspace as "public" so that multiple people can use it.  This has proved to be very important for build lab scenarios where many people need to investigate issues on the same machine and don’t want to share login credentials.
  • Large checkin support – TFS has memory issues on the client and the server and performance issues on the client when trying to check in more than a few hundred thousand files.  We are adding support for paging of pending changes and making the client UI lists "virtual" so not all data has to be loaded.  A recent test succeeded in checking in over 1,032,000 changed files in a single checkin operation with reasonable load on both the client and server.
  • tfpt unshelve /undo – We use shelvesets a great deal for code reviews here.  People complain that after they have unshelved changes and reviewed them, there is no good way to remove the changes from their local workspace (they may have their own commingled changes they want to keep).  tfpt unshelve /undo will show up in the next Power Tools release and will do what it sounds like.  It will undo the pending changes from your local workspace that are associated with a specified shelveset.
  • Larger shelveset comment – Some time ago the checkin comment was expanded from 2K to "unlimited" but the shelveset comment was not.  This difference has angered quite a few people when they lost long comments due to shelving truncation.  Shelveset comments will also now be "unlimited".


There’s more in the hopper but that’s what we have tackled for now.

As has been the pattern all summer, usage continues to be up a great deal.  In fact, every single metric is up except downloads.  The only reason they are down is due to progress in pushing more and more usage of the internal TFS Proxies that we have set up.  Perhaps the thing that stands out to me the most is the 4.27 billion rows in the local version table.  By anyone’s math that is a lot of rows and is a testament to what SQLServer can do.  That’s more rows than there are values in an unsigned 32-bit number.  Yikes!





  • Recent users: 2,797 (up 839)
  • Users with assigned work items: 4,481 (up 755)
  • Version control users: 4,967 (up 1,147)

Work Items

  • Work Items: 490,997 (up 78,066)
  • Areas & Iterations: 11,225 (up 1,141)
  • Work item versions: 4,156,617 (up 700,913)
  • Attached files: 287,913 (up 43,787)
  • Queries: 32,680 (up 7,027)

Version control

  • Files/Folders: 373,328,986/87,685,704 (up 103,546,739/up 23,450,091)
  • Total compressed file size: 3,157 GB (up 939 GB)
  • Checkins: 562,160 (up 126,227)
  • Shelvesets: 57,818 (up 26,401)
  • Merge history: 899,184,104 (up 247,380,907)
  • Pending changes: 35,857,477 (up 11,638,442)
  • Workspaces: 15,208 (up 6,287)
  • Local copies: 4,274,117,685 (was 2,214,366,807)


  • Builds: 7,971 (up 1,816)

Commands (last 7 days)

  • Work Item queries: 754,269 (up 295,736)
  • Work Item updates: 50,943 (up 12,515)
  • Work Item opens: 222,377 (up 9,334)
  • Gets: 437,760 (up 115,445)
  • Downloads: 33,880,857 (down 63,177,174)
  • Checkins: 7,919 (up 1,187)
  • Uploads: 228,880 (up 118,178)
  • Shelves: 5,277 (up 2,173)



Discussion is closed.

Feedback usabilla icon