Chapter 13. Scaling and parallel processing
This chapter covers
- Introducing scaling concepts
- Deciding when and where to use scaling
- Learning how to scale batch jobs
- Exploring scaling patterns and techniques
Now that you have some real batch jobs under your belt, you can test them for performance in a development or testing environment. But what do you do when performance isn’t good enough?
You implement scaling and partitioning! Spring Batch provides several scaling techniques to improve performance without making code changes. You implement scaling by reconfiguring jobs, not changing code. For partitioning, you implement code to divide work between a master and slave nodes.
In this chapter, we discuss general scaling concepts for batch processing and, in particular, the Spring Batch model for scaling and partitioning. We look at the different ways to scale applications à la Spring Batch and describe various solutions. We finish with guidelines for choosing the most efficient techniques to improve the performance of your batch job.
Before tackling scaling in Spring Batch, we describe what scaling is and how it can generally help improve the performance of your applications. We then see how to apply scaling concepts in the context of batch jobs.
Spring Batch provides a scaling framework and various implementations to improve the performance of jobs and steps through configuration changes without modifying code.