Skip to content

Scalability

What is scalability?

Scalability is the ability of a system to handle an increasing amount of workload without compromising performance. A search engine, for example, must accommodate increasing numbers of users, as well as the amount of data it indexes.

The workload can be of different types, including the following:

  • Request workload: This is the number of requests served by the system.
  • Data/storage workload: This is the amount of data stored by the system.

可扩展性(Scalability) 什么是可扩展性? 可扩展性(Scalability) 指的是系统在不影响性能的情况下,处理不断增长的工作负载的能力。例如,搜索引擎必须能够适应不断增加的用户数量以及其索引的数据量。

工作负载 可以分为不同类型,包括以下两种:

请求工作负载(Request workload):系统处理的请求数量。 数据/存储工作负载(Data/storage workload):系统存储的数据量。

Dimensions

Here are the different dimensions of scalability:

  • Size scalability: A system is scalable in size if we can simply add additional users and resources to it.
  • Administrative scalability: This is the capacity for a growing number of organizations or users to share a single distributed system with ease.
  • Geographical scalability: This relates to how easily the program can cater to other regions while maintaining acceptable performance constraints. In other words, the system can readily service a broad geographical region, as well as a smaller one.

可扩展性的维度 可扩展性有以下不同的维度:

规模可扩展性(Size scalability):如果我们可以简单地添加额外的用户和资源来扩展系统,那么该系统在规模上是可扩展的。 管理可扩展性(Administrative scalability):指的是越来越多的组织或用户可以轻松共享单个分布式系统的能力。 地理可扩展性(Geographical scalability):指的是系统是否能轻松扩展到不同的地理区域,同时保持可接受的性能约束。换句话说,系统既可以为广泛的地理区域提供服务,也可以适应较小的区域。

Different approaches of scalability

Here are the different ways to implement scalability.

Vertical scalability—scaling up

Vertical scaling, also known as “scaling up,” refers to scaling by providing additional capabilities (for example, additional CPUs or RAM) to an existing device. Vertical scaling allows us to expand our present hardware or software capacity, but we can only grow it to the limitations of our server. The dollar cost of vertical scaling is usually high because we might need exotic components to scale up.

垂直扩展(Vertical Scalability)—向上扩展(Scaling Up) 垂直扩展(Vertical Scaling),也称为向上扩展(Scaling Up),是指通过增加现有设备的能力(例如增加 CPU 或 RAM)来扩展系统的方式。

垂直扩展允许我们扩展当前的硬件或软件容量,但它的增长受到单个服务器的硬件上限限制。此外,垂直扩展的成本通常较高,因为可能需要昂贵的高性能组件。

Horizontal scalability—scaling out

Horizontal scaling, also known as “scaling out,” refers to increasing the number of machines in the network. We use commodity nodes for this purpose because of their attractive dollar-cost benefits. The catch here is that we need to build a system such that many nodes could collectively work as if we had a single, huge server.

Screenshot 2025-02-16 at 20.27.30

Vertical scaling versus horizontal scaling

水平扩展(Horizontal Scalability)—向外扩展(Scaling Out) 水平扩展(Horizontal Scaling),也称为向外扩展(Scaling Out),是指通过增加网络中的机器数量来扩展系统。

通常,我们使用普通商用节点(commodity nodes)进行水平扩展,因为它们具有较低的成本。但关键在于,我们必须设计一个系统,使得多个节点可以协同工作,让它们整体表现得像一个单一的大型服务器。