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.

13.1. Scaling concepts

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.

13.1.1. Enhancing performance by scaling

13.2. Multithreaded steps

13.3. Parallelizing processing (single machine)

13.4. Remote chunking (multiple machines)

13.5. Fine-grained scaling with partitioning

13.6. Comparing patterns

13.7. Summary

sitemap