|
Sponsored Links
Resources
.NET Research Library
Get .NET related white papers, case studies and webcasts
|
News
News
News
|
Messages: 0
Messages: 0
Messages: 0
Printer friendly
Printer friendly
Printer friendly
Post reply
Post reply
Post reply
XML
XML
XML
|
 |
Inside the Microsoft TFS experience
By George Lawton Last month, Brian Harry, distinguished engineer on Microsoft’s Team Foundation Server team talked about Microsoft’s in-house experiences working with Visual Studio Team System and its underlying Team Foundation Server. Although there are relatively few software organizations of Microsoft’s size, its experiences “eating its own dogfood,” albeit on a greater scale than most, are valuable to others. Harry spoke at Software Development West in Santa Clara, Calif.
Harry gave some background on the VSTS suite of software apps for development teams. “About five years ago, we were looking at the future of development tools and looking at the problems developers faced,” he said. Projects failed, they decided “not for technical reasons, but due to the dynamics in the team, lack of organizations and communications.”
“We wanted to know what we could build to address those needs,” Harry said. “What could be built to get visibility and transparency into the teams that have centered on the developers?” TFS, he indicated, is the glue that ties this together.
Harry and his colleagues set about implementing the software within Microsoft. The task was substantial. And the take-away is that a server used for the special purpose of supporting development teams has its own special character.
Data Points He described the setup. “There are 15 instances of the server at four sites around the world, which support 322 projects, and 8,762 users. Of those we have 3,823 users that use it on a weekly basis. The central server is in Redmond and another at Hyderabad, India, and there are proxy servers in Shanghai and North Carolina.,” Harry told the SDWest crowd.
He added that the Developer Division has about 1.3 Tbytes of active data and indexes. Of that, about 1.1 Tbytes comprise version control information. That is the type of information important to know for server tuning.
“When we think about tuning the overall storage system, it is important to look at the version control side,” Harry said. “The version control server has about 86 million files and folders in it. The local version table has 436 million rows in it. I predict that by the end of this year, that table will have a billion rows.”
Roll out, roll over “When we first released Team Foundation Server version 1.0, we had been dogfooding for about a year. We were at about 1.5 million files, and had about 500 users. A month after shipping, we started rolling out the system to more users. In April, the system rolled over when we got to 1,000 users.”
At the point, the problems encountered were a couple fold. The files grew from 1.5 million to 15 million very rapidly. More importantly, the usage pattern changed dramatically.
In an intial two-week period, Harry said, people started using the system for things they had not done before - things like large branch creation. Size of operations skyrocketed. Before, they were doing 50,000 file mergers, but when they got to a million file merges, the system could not handle it. Study showed that most requests related to version control.
Lessons learned The team’s experience translates into some general lessons, per Harry:
Plan your testing. “We expected, at 1.5 million files, to maybe go to 5 million files and assumed the pattern would be the same. It has now grown to 90 million files and the pattern has changed dramatically. My general rule is to think what ever you can imagine as the biggest you expect them to do, then multiply it by ten. “
Things fall over successively. “What works great at 100 rows, works terribly at ten thousands rows. You have not worked all of the problems out of your query plan until you have gotten to 10 million rows. Maybe when we get to a billion, I will learn that 10 million was a false point. “
When troubleshooting, identify the cost of a query carefully. “The query analyzer is your friend, a great tool to help you understand what is going on. They help you decide what table got scanned. Even using these tools, there are things that are hard to look at, and you have to be careful. It is good at telling you how many rows came back from a query, but not good at telling you it had to read a million rows to get at that.
Remember, there is a difference between logical and physical I/Os. “In version 1.0, I took all my paths and sorted them. Unfortunately, if I was to access all of the files in a folder, I end up seeking dramatically more because of interleaving in all of the subtrees. We went back to looking at what order we want the data to be on the disk to give us a geometric pattern as to how to optimize the data on the platter. When I look across all of the operations, the one change resulted in a 10X improvement. Sometimes you have to drop the relational model and look at what is happening at the disk level.”
Harry also advised teams to be aware of lock escalation in order to avoid server roll over.
Note: Brian Harry’s blog is a constant source of useful information on TFS - including "Dogfooding" updates http://blogs.msdn.com/bharry/default.aspx
|
|
 |
| |
|
New content on TheServerSide.NETNew content on TheServerSide.NETNew content on TheServerSide.NET |
 |
 |
Language "mashups" will become more prominent, and developers will become polyglots, one programmer suggests.
SearchWinDevelopment.com offers an introduction to the language, performance, testing and data management improvements in VS 2008.
VBCode.com code snippets cover all aspects of application development, from data binding to security to the user interface.
Get up to date on XAML best practices with a variety of articles, tutorials and webcasts. [SearchWinDevelopment.com]
One team's experience with the VSTS DB edition suggests that it can improve workflow for dev teams. It also enhanced Agile efforts.
(June 24, Article)
Microsoft has begun to include DSL tools in the VSTS kit. A new book by Steve Cook and other VSTS team members helps set the stage.
(June 24, Article)
Cartoon: Be it ever so humble there is no place like your home after you get a Microsoft Home Server .
(June 18, Cartoon)
Microsoft's Thom Robbins says new technology to highlight in NET 3.5 includes AJAX, LINQ for both C# and VB, as well as tooling enhancements intended to ease the task of building WPF, WF and WCF apps.
(June 29, Podcast)
Venkat Subramaniam discusses AJAX bottlenecks, the tenets of Agile development and more. He spoke at the Ajax Experience.
(June 25, Tech Talk)
In the second of a two-part series, Michele Leroux Bustamente discusses design decisions related to the claims-based security model. Read the story and walk through the process for creating a set of claims-based utilities to encapsulate claims authorization at the service tier.
(May 24, Article)
Understanding why the Entity Framework exists and learning where it can fit into your projects can get you prepared for the eventual release early next year.
(May 10, Article)
Resource: This learning guide gives you quick access to useful links on Windows Communication Foundation security information.
(April 24, Article)
TSS.NET's Jack Vaughan spoke recently spoke with Microsoft's Brad Abrams to find out what he is seeing in the field and what the chefs in Redmond are cooking. Along the way he discusses patterns of AJAX frameworks.
(April 11, Article)
In a two-part series, Michele Leroux Bustamente explains how claims-based security is supported by WCF, and how you can implement a claims-based security model for your services.
(March 29, Article)
Windows Workflow Foundation is a new technology that many developers will need to get their heads around. In a brief excerpt adapted from Programming Windows Workflow Foundation: Practical WF Techniques and Examples using XAML and C#, K.Scott Allen considers aspects of workflow definition.
(March 22, Chapter Excerpt)
|
|