What is a scalable system?
Suppose we have a system providing an online service, which consists initially of a server linked to a database running on a separate computer. The server can only cope with a finite number of concurrent requests. This limit could be dictated by a number of different factors, for instance: the bandwidth to the server the processing power available on the server the memory available on the server the bandwidth between the server and the database At least one of these factors will be a bottleneck, dictating how much load the server can deal with. To arrive at a number like client requests served per second, we need to decide what the load of a typical request will be: how much data it sends to the server and gets back, how much data the server and database must transfer between them, how much processing power and memory serving the request requires, and other, more subtle factors. These might include how much benefit the server might derive from caching data from the database, or from ca