A
fault-tolerant computer system can be achieved at the internal component level, at the system level (multiple machines), or site level (replication). One would normally deploy a
load balancer to ensure high availability for a
server cluster at the system level. In a high-availability server cluster, each individual server may attain internal component redundancy by having multiple power supplies, hard drives, and other components. System-level redundancy could be obtained by having spare servers waiting to take on the work of another server if it fails. Since a data center is often a support center for other operations, such as business logic, it represents a potential SPOF in itself. Thus, at the site level, the entire cluster may be replicated at another location, where it can be accessed in case the primary location becomes unavailable. This is typically addressed as part of an
IT disaster recovery program. While previously the solution to this SPOF was physical duplication of clusters, the high demand for this duplication led multiple businesses to outsource duplication to 3rd parties using
cloud computing. It has been argued by scholars, however, that doing so simply moves the SPOF and may even increase the likelihood of a failure or
cyberattack.
Paul Baran and
Donald Davies developed
packet switching, a key part of "survivable communications networks". Such networks including
ARPANET and the
Internet are designed to have no single point of failure. Multiple paths between any two points on the network allow those points to continue communicating with each other, the packets
"routing around" damage, even after any single failure of any one particular path or any one intermediate node.
Software engineering In
software engineering, a
bottleneck occurs when the capacity of an
application or a computer system is limited by a single component. The bottleneck has the lowest throughput of all parts of the transaction path. A common example is when a used
programming language is capable of
parallel processing, but a given
snippet of code has several independent processes run sequentially rather than simultaneously.
Performance engineering Tracking down bottlenecks (sometimes known as
hot spots – sections of the code that execute most frequently – i.e., have the highest execution count) is called
performance analysis. Reduction is usually achieved with the help of specialized tools, known as performance analyzers or profilers. The objective is to make those particular sections of code perform as fast as possible to improve overall
algorithmic efficiency.
Computer security A vulnerability or security exploit in just one component can compromise an entire system. One of the largest concerns in
computer security is attempting to eliminate SPOFs without sacrificing too much convenience to the user. With the invention and popularization of the
Internet, several systems became connected to the broader world through many difficult-to-secure connections. ==Other fields==