Параллельная обработка данных в режиме конкурирующих потребителей (competing consumers)
Сразу отмечу что это всего лишь один частный случай распараллеливания обработки больших объемов данных.Схема:есть один процесс - мастер и несколько однородных процессов (экземпляров) - воркеров;данные нарезаются на блоки, каждый из которых обрабатывается независимо от остальных;мастер занимается отбором, подготовкой блоков и вкладкой их на "конвейер" (очередь на обработку), откуда их параллельно разбирают воркеры;каждый воркер берет очередной блок с конвейера и обрабатывает его, результат обработки блока не зависит от порядка обработки и от того, какой именно воркер его взял.
Главное условие корректности: результат обработки блока не зависит от других блоков и от порядка их обработки. Если блокам нужно общее изменяемое состояние или важен порядок обработки, модель в текущем виде неприменима.
habr.com