Skip to content
stella edited this page Jun 23, 2014 · 1 revision

There are two general approaches to scaling any system to increase perform

  1. Vertical Scaling - Faster machine with more RAM, CPUs, GHz
  2. Horizontal Scaling – Add more machines to distribute load remotely

Spring Batch Scaling Stregies

  1. Multithreaded Step – Configure multithreading at the step level. Suitable for vertical scaling. Only useful for single machines with multicore CPUs, complex to avoid thread safety issues.
  2. Parallel Step - Configure steps to execute in parallel. Suitable for vertical scaling. Must have branched steps configured.
  3. Remote Chunking – Perform chunk processing/writing on remote servers. Suitable for horizontal scaling. Assumes processing+write is more taxing than reading.
  4. Partitioning Step – Partitions reader data and distributes each segment of data to multiples threads or remote nodes. Suitable for horizontal scaling.

Clone this wiki locally