MapReduce or Batch Job?

What is the main difference between a MapReduce Job and Batch Job when there is no Reduce Step? From the snippet below I don’t get what you mean with “Data Backed by an entity type”.

In my case I want to apply a function F to all the instances of a Type A. Type A has a reference field that points to data of another Type B and F uses fields of A and B to do some processing and ouptut some function. Basically I need distribute the application of F, what should I use? A Batch Job or a Map Reduce (without Reduce)?
I would say a MapReduce Job, but I am not sure… :slight_smile:

Thanks a lot!
A

The main difference is that MapReduceJob schedules the fetches and all the maps automatically, while for a BatchJob you are responsible for orchestrating fetches and scheduling batches. That means that MapReduce might be more optimized when dealing with persistable types, while BatchJob can be more flexible, including the ability to batch across non-persistable objects.

1 Like

Thanks a lot Riley, now it’s clear.

More info here in case you’re curious: