Universal Scaling and Complexity

Universal Scaling and Complexity

The universal scaling law is a model designed to help engineers understand transaction based systems, particularly databases and applications. What could a transaction based system have to do with network design? After all, networks aren’t really transaction based, are they? Or maybe they are…

Let’s ignore the data flowing through the network for a moment (though the universal scaling law might provide an interesting way to look at packets or flows per second as transactions), and focus just on the control plane. When we look at the control plane, we find a routing protocol or a centralized controller that accepts information about changes in the network topology (and other data points), and builds a model of the network topology which can be used to forward traffic. Questions we can ask about the state being handled by the control plane include things like: How many changes are there? What is the rate at which this information arrives? How many changes might be present in the system at any given time? How many devices participate in the control plane?

If these all sound like questions about state, one of the three “legs” of the complexity model (state, optimization, surface), that’s because they actually are. What’s interesting, however, is that they’re not “just” questions about state—they’re also questions that apply to the universal scaling model. If you’re not familiar with this model you should take a look at this paper, written by Baron Schwartz, which describes the universal scaling model from the perspective of a application. In this paper, he states:

The most important part of understanding such a scalability model is choosing the correct variables to describe the way systems really operate. Bondi’s definition provides a good clue: work is the driving factor of scalability. Useful ways to think about work include, to mention a few: Units of work (requests); The rate of requests over time (arrival rate); The number of units of work in a system at a time (concurrency); The number of customers, users, or driver processes sending requests.

What’s even more interesting is that these descriptions of state actually describe the state passing through an interface—or rather an interaction surface between two components. Optimization is impacted, as well, as the universal scaling law describes a way to measure whether or not things will scale with different amounts and kinds of state.

If you’re not familiar with the universal scaling law, it’s well worth reading this paper; it’s another model, and therefore another tool, that will help you understand the why behind the what in many systems.