liveBook · Manning

Horizontal scaling

As explained in Elasticsearch in Action, Second Edition

Horizontal scaling increases system capacity by adding more nodes or machines rather than increasing the resources of an existing node.

When several indexes expand to roughly 10 TB, horizontal scaling adds nodes instead of enlarging existing machines. Elasticsearch forms a larger cluster and shares the capacity across those nodes. section 14.3.2 section 3.6.2

Scaling out means starting additional virtual machines as Elasticsearch nodes and joining them to the existing cluster. The distributed engine then distributes data across the expanded environment. section 3.6.2

Use horizontal scaling to:

  • Increase read throughput or indexing performance by adding nodes. section 14.1
  • Handle growing data or query loads without relying only on larger machines. section 3.6
  • Provision additional capacity through virtual machines and infrastructure-as-code tools such as Terraform, Ansible, or Chef. section 3.6.2
  • Plan capacity carefully because shard sizing, memory requirements, data volume, and business demands affect the required cluster size. section 14.1 section 14.3.2

Adding nodes for multiple indexes

A five-node cluster with 400 GB per node provides about 2 TB. To support about 10 TB for multiple indexes, add 20 nodes, creating a 25-node cluster with the same 400 GB per node. This contrasts with vertical scaling, which would increase each existing server to 2 TB. section 14.3.2

Figure 14.8 Exponential memory usage for five indexes on a node

Use the figure to inspect how memory requirements grow when multiple indexes, shards, and replicas are planned together. section 14.3.2

How Elasticsearch in Action, Second Edition covers it

How deep it goes
Explains node addition, cluster membership, capacity planning, and a 10 TB example, but defers detailed shard-sizing treatment.
Examples
Uses a 25-node, 10 TB multi-index cluster and compares adding 20 nodes with enlarging five existing servers.
What it assumes
Introduces the contrast between single-node learning environments and production clusters while assuming no detailed scaling procedure.
What you can do after
Operate/configure an Elasticsearch cluster by adding nodes and forecasting capacity for data, memory, throughput, and indexing demands.
How it connects
Contrasts horizontal scaling with vertical scaling and connects it to Elasticsearch clusters, nodes, shards, replicas, and infrastructure as code.

Also explained in

Compare how 13 books explain horizontal scaling →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Elasticsearch in Action, Second Edition. The section links point to the parts of the book it draws on.