Chapter 56. Scalability
Scalability is a mathematical property with a precise definition. It is the rate of change of speed with respect to a specified parameter. Here is an example. The following plot shows the speed (measured as response time) of four data access algorithms with respect to the number of rows in a table. The curves are all labeled in what mathematicians call “big O” notation,1 which describes the shape of the curve. The interesting question is: which of the four algorithms is best?
The answer is: it depends upon the row count of your table. If it has fewer than 200 billion rows, then the O(n2) algorithm will give better response time than any of the other algorithms. Between 200 billion and 400 billion rows, the O(n log n) algorithm is best. If it has more than 400 billion rows, then the O(log n) algorithm is going to give you the best response time.
The R value on a curve for a given n value is the speed of an algorithm at a given data set size. The shape of its curve is the algorithm’s scalability. While the particular O(n2) algorithm in this plot does give better performance for smaller tables, the O(log n) algorithm is more scalable with respect to table size because it gives better performance as your table size grows toward infinity.
You can measure scalability with respect to any parameter that influences performance. For example:
-
How an algorithm’s ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access