Background

Every day of every year, IRS online services are used by people throughout the world. While the IRS is in constant operation, the demand for their services during the April filing season increases exponentially. Needing to support every transaction, the IRS must ensure system capacity is available to meet peak demands.

Challenge

In 1999, IRS Enterprise Architecture directed developers to code every custom system executing on the Unix platform in C++. Software engineers developed two major systems in C++, a secure inbox to send requested transcripts to businesses and individuals, and a provisioning system that supported third party and employee account registration. Both systems saw a substantial increase in user demand during the April filing season. As IRS’s online presence grew, the demand on both systems increased beyond what they were originally designed to support. STP software engineers were tasked with finding a solution to the capacity issue.

The Solution

Working via a contract with CSC, STP’s software engineers discovered that both systems were built to support only one transaction at a time. Also, the single threaded software made little use of the servers’ CPU’s, resulting in poor utilization of the IRS’s hardware investment. STP’s software engineers made two key changes. First, they ran more servers on each platform. Second, they rearchitected both systems to utilize multithreading, which allowed each software server to execute multiple transactions concurrently. Because of these changes, both systems were able to meet peak demand while properly utilizing the IRS’s existing hardware investment.