Diferencia entre fragmentación remota por lotes de spring y partición remota

¿Cuál es la diferencia entre la fragmentación remota por lotes de spring y la partición remota?

No puedo entender la diferencia entre fragmentación remota y partición remota en lotes de spring. ¿Alguien podría explicar?

Particionamiento Remoto

El particionamiento es una configuración de paso maestro / esclavo que permite que las particiones de los datos se procesen en paralelo. Cada partición se describe a través de algunos metadatos. Por ejemplo, si estaba procesando una tabla de base de datos, la partición 1 puede ser ids 0-100, la partición 2 es 101-200, etc. Para Spring Batch, un paso maestro usa un Partitioner para generar ExecutionContexts que contienen los metadatos para cada partición. Estos ExecutionContexts se distribuyen en el paso esclavo para su procesamiento por un PartitionHandler (para el particionado remoto, el MessageChannelPartitionHandler se usa normalmente). Los esclavos ejecutan su paso y devuelven los estados resultantes para la agregación por parte del maestro.

Cosas a tener en cuenta sobre el particionado remoto:

  • La entrada y la salida son locales para los esclavos. Por ejemplo, si la entrada es un archivo, los esclavos necesitan acceso al archivo.
  • Los esclavos necesitan acceso al JobRepository. Los esclavos están completamente definidos en los pasos de Spring Batch y necesitan acceso al JobRepository.

Chunking Remoto

La fragmentación remota es similar a la partición remota en que es una configuración maestro / esclavo. Sin embargo, con fragmentación remota, el maestro lee los datos y los envía al esclavo para su procesamiento. Una vez que finaliza el procesamiento, el resultado del ItemProcessor se devuelve al maestro para su escritura.

Cosas a tener en cuenta sobre fragmentación remota:

  • Todas las E / S son hechas por el maestro.
  • Los esclavos solo manejan el procesamiento y, por lo tanto, no necesitan acceso al JobRepository.
  • La fragmentación remota es más intensiva en E / S que la partición remota, ya que los datos reales se envían por cable en lugar de los metadatos que lo describen.

Hice una charla sobre escalar Spring Batch y hacer una demostración de particiones remotas que puedes ver aquí: http://www.youtube.com/watch?v=CYTj5YT7CZU