Chain Reactions

Learn scaling (horizontal and vertical), and see an example of chain reaction and its causes.

Scaling

The dominant architectural style today is the horizontally scaled farm of commodity hardware. Horizontal scaling means we add capacity by adding more servers. We sometimes call these farms. The alternative, vertical scaling, means building larger servers, adding core, memory, and storage to hosts.

Vertical scaling has its place, but most of our interactive workload goes to horizontally scaled farms.

Horizontal scaling

If our system scales horizontally, then we will have load-balanced farms or clusters where each server runs the same applications. The multiplicity of machines provides us with fault tolerance through redundancy. A single machine or process can completely bonk while the remainder continues serving transactions.

Still, even though horizontal clusters are not susceptible to single points of failure (except in the case of attacks of self-denial) see Self-Denial Attacks, they can exhibit a load-related failure mode.

For example, a concurrency bug that causes a race condition shows up more often under high load than low load. When one node in a load-balanced group fails, the other nodes must pick up the slack. For example, in the eight-server farm shown in the figure below, each node handles 12.5 percent of the total load.

Get hands-on with 1400+ tech skills courses.