Scalability Flashcards
What is the definition of scalability?
The capability of a system, network, or process to handle a growing amount of work, with the potential to be enlarged in order to accommodate that growth.
What should a system have to be considered to have linear scalability?
The amount of work needs to be perfectly divisible by the number of available resources.
OR
The amount of work done by each resource needs to be constant over time.
What is the ratio that defines efficiency?
It is the performance per unitary size/load. Linearly scalable systems preserve efficiency as size/load grows.
Give an example of a system that by having a serial portion, limits the scalability from being linear.
For example, a distributed database where the requests are handled by more than one worker and need to be assembled before replying to the client.
What is the formula that returns the throughput at size N, in a system with perfect linear scalability?
X(N) = λN / 1, where N is the system size, and λ is the performance coefficient at size 1.
Given A and B:
A: λ = 50, σ = 0, k = 0
B: λ = 10, σ = 0, k = 0
Which is more scalable?
They are equally scalable, but A performs better.
The serial portion of a system (σ) represents what?
The contention of the system.
Which factor imposes a speed-up limit?
Contention factor (σ).
The serial work of a system places an effective ceiling on…
The maximum achievable throughput.
What imposes a limitation on the achievable system size (maximum useful size)?
Crosstalk (k)
Which factor limits system size?
Contention factor (σ).
What is the formula that relates throughput with latency?
Little’s law. N = X . R, where:
- N is the mean number of requests in the system.
- X is the throughput of the system
- R is the response time (latency)
In a throughput vs latency plot, as the throughput approaches λ/σ, response time tends to…
Infinity
In a throughput vs latency plot, when we get retrograde scalability, that means the system is…
Overloaded. We reached the saturation of the system.
Is it common for real systems to get retrograde scalability?
No, live systems usually do not reach that point. Real clients tend to leave before the threshold as the system becomes unusable.