Tags:conceptdatabasescalingupscalingoutnosql Status:🟩


Database Scale Out and Scale Up

Summary

Scaling is the process of increasing a system’s capacity to handle more workload. It can be achieved by enhancing a single unit or distributing tasks across multiple units, depending on the system’s needs and limitations.

  • Scaling Up: Upgrades a single unit (e.g., CPU, RAM, or storage). Limited by hardware constraints.
  • Scaling Out: Expands capacity by adding multiple units, often using NoSQL databases with key-value stores.

Scaling up

Scaling up refers to upgrading a specific unit (like a server). This could be like upgrading the internal components like CPU or RAM for processing data, or data disks for more storage. You will reach a limit of how much you can scale up at some point.

Scaling out

Scaling out involves using multiple hardware units to run a distributed server. For this you no longer use a relational database, but instead use something like NoSQL that uses Key-Value Stores. (For any exam questions about scaling out / distributed architecture, the answer is most likely in NoSQL note.)

Over the time, we have gotten:

  • much better servers and more servers which lead to cloud storage.
  • a lot more data to handle.
  • more types of data to handle.
    • A lot of them has less structure which means less need to complexity.