Scaling is the concept of maintaining performances even when the computational load gets bigger, or the data gets larger.
There are two directions where we can scale:
- Vertical (or Up): upgrading the disk to a bigger one, or the CPU to a more performance one; This is easy, but it puts a limit on the maximum performances that is defined by the technology. Furthermore it’s an expensive choice to always be on the cutting edge of technology.
- Horizontal (or Out): adding more cheap disks or CPUs and using them all for the computation. This is less easy, but it hasn’t got any limits to the scale, and it’s more flexible. The con is that the management of parallel work has some overhead that has to be paid.