About InfoWorld : Advertise : Subscribe : Contact Us : Awards : Events : Store
InfoWorld HomeNewsTest CenterOpinionsProduct GuideTechIndex
PRODUCT REVIEWS GUIDE    REVIEWS    ANALYSES    SPECIAL REPORTS 
 

TEST CENTER

 
It's not a bug, it's a feature

By Randall C. Kennedy
November 21, 2001


IT'S AN OLD STORY: Developer writes code. Code taps vendor API. Vendor changes API without properly documenting the effects of the change. Developer gets burned.

   ADVERTISEMENT
  

Free IT resource

TechNet: More ways to know it, share it, and keep it running.

Sponsored by Microsoft

Free IT resource

Attend the SOA Executive Forum: Breaking SOA Bottlenecks SOAExecForum.com/may2007

Sponsored by InfoWorld

RELATED LINKS
»  IT trainer offers master's degree for hackers
»  MSNBC buys participatory news site Newsvine
»  Merchants: eBay ad programs drive buyers away
»  Web services RSS feed 

IDG ENTERPRISE NETWORK
Web Services Caution Abounds  (CIO)

TOP NEWS 


IT SOLUTION SEARCH
Such was the case during our recent performance testing of Windows XP (see "Waiting for Windows XP," Oct. 29). It seems that Microsoft decided to change the default behavior of certain MDAC (Microsoft Data Access Components) for the new Windows, with the net result being a significant change in how SQL Server database connections are established. Instead of using Named Pipes as the Network Library, as MDAC does in Windows 2000, MDAC 2.7 -- the version used in Windows XP -- defaults to TCP/IP.

This change may seem innocuous, but only until you consider how a sudden switch of network libraries can affect application behavior. The TCP/IP library for SQL Server consumes more CPU cycles than does the Named Pipes library, especially in transactional scenarios where requests are batched together to improve performance. More CPU time for the libraries means less CPU time for the application. It's not hard to see how the introduction of an unexpected external load (more demanding libraries) can adversely affect a heavily tasked system.

Looking for answers

We discovered this phenomenon quite by accident while testing client/server database workloads on a Windows XP PC. Although throughput to and from the server was excellent, the processing overhead involved in maintaining the SQL Server connection began to overwhelm the PC. Multitasking test scenarios that required only seconds to complete on Windows 2000 were taking several minutes on Windows XP. It wasn't until after several conversations with Microsoft that we learned of the change in default MDAC behavior. And, as it turned out, we were indeed executing a test script -- an OLE (Object Linking and Embedding) database connection string -- that relied on the original behavior, namely, defaulting to Named Pipes.

The story might have ended there had we not decided to dig deeper. For starters, we wanted to know exactly when the change became part of a shipping MDAC release. Was Windows XP the first product to feature the revised libraries? Were there other products or service packs that might feature the update? We also wanted to know where and how the change was documented. Changing a default behavior and then documenting it is risky enough; changing a default behavior and leaving the change undocumented (or poorly documented) is unforgivable. It's the kind of irresponsible indifference that ultimately alienates developers.

We eventually learned from Microsoft that the change first appeared in MDAC 2.6, the version that shipped with SQL Server 2000 (Windows 2000 ships with MDAC 2.5) and that the change in default behavior was made, ostensibly, at the request of several of Microsoft's larger corporate customers. As for documentation, a thorough review of the release notes for MDAC 2.6 and MDAC 2.7 revealed no mention of the change. Neither did an exhaustive search of Microsoft's Knowledge Base. In more than 200 articles on MDAC we found not a single mention of a change to the default network library. In fact, Microsoft was hard-pressed to find a reference itself. In the end the company referred us to a single Knowledge Base article, one focusing on an otherwise unrelated topic (ODBC), where the reference was made mostly in passing.

So there we were. We had identified the source of the performance anomaly: A poorly documented, one might argue undocumented, change in the default behavior of a key MDAC component. We almost let the issue die right there, but something Microsoft said kept gnawing at us: The change to the default network library first appeared in MDAC 2.6. This version of MDAC, we learned, was released specifically to support new features in Microsoft SQL Server 2000. All of this evidence begged the question, if Microsoft is frequently updating MDAC to support its server products, how would the introduction of a change such as that in the default network library affect a more servercentric solution, such as a database-driven Web site?

Back to the test lab

Naturally, the only way to find out was to build an actual Web site and test it; and that's what we did. Using our soon-to-be released ASP (Active Server Pages) workload simulator, ASP Stress, we conducted a series of tests to gauge transactional database query performance using a dual-processor Pentium III Web server running Windows 2000 with MDAC 2.7. By monitoring the server's CPU utilization counters via the Windows Performance Monitor application, as well as our own ASP Stress transaction timer, we were able to measure the impact of a switch from Named Pipes (the Windows 2000/MDAC 2.5 default) to TCP/IP (the Windows XP/MDAC 2.6 and MDAC 2.7 default).

And impact there was. Although overall server CPU utilization rose by a modest 8 percent using TCP/IP, context switches per second -- a measure of the operating system's ability to juggle multiple tasks -- dropped by more than 150 percent for a 10-user workload. In real-world terms, this meant a 10 percent to 15 percent loss in overall SQL Server transaction performance as we scaled the server from 10 users to 25 users and finally to 50 users.

Needless to say, this is the sort of unexpected behavioral change that can cause a particularly busy Web application to start dropping connections or, in extreme cases, to crash. And it happens because Microsoft switched defaults to appease a few of its preferred customers. To be fair, we can't blame Microsoft for trying to keep its top IT partners happy. That's just good business. But it certainly should have taken the time to clue the rest of us in about the changes.

The moral of the story is this: Never put trust in a default behavior, especially when a sudden change to that behavior could have an adverse effect on application performance. Of course it doesn't help that most examples of Microsoft SQL Server connect string code omit the Network Library parameter, thereby encouraging developers to rely on the default value. Although it's true that many IT shops will catch such changes during qualification testing (assuming scalability is part of the test matrix), we can't help but be concerned when Microsoft starts to tinker with such an integral part of its key server products such as SQL Server, and developer tools such as Visual Studio, both of which often incorporate updates to MDAC.





A 17-year veteran of the IT industry, Randall C. Kennedy is director of research and co-founder of Competitive Systems Analysis. Contact him via the CSA Research Web site at www.csaresearch.com .

 
MDAC defaults: How we tested


ASP Stress 2.0, which runs as an add-on to CSA Research's Benchmark Studio Framework, simulates a Microsoft ASP (Active Server Pages)-based, three-tier application server environment. In this particular scenario, we configured the client to access an ASP script (adostress.asp) page that executed a series of SQL database transactions using the ADO (ActiveX Data Object) libraries and the SQLOLEDB (SQL Server OLE DB) database driver. We then used the ASP Stress client's built-in transaction counters to record the average execution time for each pass through the script loop (the average SQL transaction time).

To scale the solution, we used the Benchmark Studio Framework to create multiple concurrent Web-client sessions running across the five client PCs making up our test bed. We started with a single session per PC, then increased this to five sessions to simulate 25 clients and to 10 sessions to simulate 50.

Find out more about ASP Stress 2.0 and the Benchmark Studio Framework at the CSA Research Web site (www.csaresearch.com).

     



  BOTTOM LINE
MDAC in motion
EXECUTIVE SUMMARY
With Microsoft playing musical chairs with its default behaviors under MDAC, Web application developers building for the IIS (Internet Information Server)/ASP (Active Server Pages) platform will need to take greater care when updating core OS data-access components on existing servers.

TEST CENTER PERSPECTIVE
Microsoft's decision to change the default behavior of the Network Library parameter in MDAC 2.6 and MDAC 2.7 will force developers to make a conscious choice regarding which library to employ. TCP/IP (the new default) is faster than Named Pipes (the old default), but it also consumes more CPU cycles per transaction, and the processing overhead that can lead to scalability problems down the road.


RELATED SUBJECTS

Web Technologies


SPONSORED WHITE PAPERS
EMC - Lower costs and improve reliability-Get the EMC CLARiiON white paper!
Ciphertrust - Are you ready for Sobig.G? Learn how to protect your email systems.
CDW - Personal attention. CDW. The Right Technology. Right Away.
EMC - Explore key performance features and capabilities of EMC ControlCenter 5.1.1.
Intel - Free Intel white paper shows you how to deploy a secure wireless LAN
Cisco - FREE WHITE PAPER: BLUEPRINT to design and implement secure VPNs
Verity, Inc. - "Mass Consolidation Hits the Web-Search Market"
McDATA - Download a FREE storage consolidation white paper from McDATA(R).
Lucent Technologies - Overcoming Common Firewall Limitations
Lucent Technologies - Leverage Your Mobile High Speed Data Access. Download Free White Paper!
Nokia - Get the scoop! Mobilizing business white papers & case studies.
BMC Software - Maximize the Potential of Enterprise Data: Free white paper!
Network Associates - Free white paper - Strategies for Optimizing Network Costs and Benefits
Entrust - Manage identities across applications. Improve productivity.
Stalker Software - CommuniGate Pro - Transform your Email and Calendaring
Remedy - A NEW Gartner Research Note:Producing Quality IT Services

Search the IDG White Paper Library:


SPONSORED LINKS

INFOWORLD MARKETPLACE


» EMC delivers high-speed image capture, storage
Learn how you can quickly capture, organize, and deliver information with EMC ApplicationXtender.
» Agentless SOA Management
SOA operational visibility in less than a day, without installing message agents - free download.
» Apply BPM and ITIL at your IT Help Desk
ServiceWise brings BPM to complete IT service while eliminating integration cost. Learn more here.
» Find IT Consultant
Post Your Project for Free. Get Bids from Thousands of Pre-Screened Consultants. Register Now!
» Metadata Management Software
MetaCenter: Plug & play metadata management software for enterprise systems. Features: data ...




 HOME  NEWS  TEST CENTER  OPINIONS  PRODUCT GUIDE  TECHINDEX   About : Advertise : Subscribe : Contact Us : Awards : Events 

Copyright © 2008, Reprints, Permissions, Licensing, IDG Network, Privacy Policy

All Rights reserved. InfoWorld is a leading publisher of technology information and product reviews on topics including viruses, phishing, worms, firewalls, security, servers, storage, networking, wireless, databases, and web services.

Computerworld :: Network World :: CIO :: PC World :: Darwin :: CMO :: CSO
IT Careers :: JavaWorld :: Macworld :: Mac Central :: Playlist :: GamePro :: GameStar :: Gamerhelp
ITWorld Canada :: Computerwoche :: Techworld UK :: tecChannel :: IDG.se :: IDG.no