Есть ли собственное имя для обработки данных независимо от порядка? - PullRequest
1 голос
/ 27 мая 2020

Как вы называете систему (обработки данных), в которой обработка данных в другом порядке не изменяет окончательный результат / состояние? без необходимости обрабатывать их в точном порядке, в котором они были получены.

Я подумал о «независимом от порядка / времени», но посмотрел, есть ли в отрасли название для этого.

Ответы [ 3 ]

1 голос
/ 24 июня 2020

Для обработки потока событий (по крайней мере, в контексте распределенных систем) ее можно назвать просто «Обработка данных вне очереди», как в заголовке статьи о модели потока данных от Google Research:

Модель потока данных: практический подход к уравновешиванию правильности, задержки и затрат при крупномасштабной, неограниченной, неупорядоченной обработке данных

Обратите внимание, что это относится к Программирование потока данных , отличное от архитектуры потока данных в ответе Герда.

В зависимости от того, с какой проблемой вы можете столкнуться, ее можно решить с помощью существующих реализаций модели потока данных. Вас также может заинтересовать проект Apache Beam , модель программирования, в значительной степени вдохновленная моделью потока данных, которая может использовать несколько базовых механизмов обработки для выполнения фактических вычислений.

Существующая обработка системы, использующие эту модель, включают:

1 голос
/ 24 июня 2020

Иногда сообщество Flink использует термин «обработка времени события» для обозначения этих случаев, когда результаты потоковых вычислений (почти) детерминированы c независимо от порядка, в котором обрабатываются события.

0 голосов
/ 23 июня 2020

В общем, результат вычислительного процесса действительно зависит от порядка выполнения шагов обработки (или инструкций) просто потому, что шаг обработки часто зависит от результата предыдущего шага (см. зависимости данных ).

Теперь вычислительная система может попытаться автоматически найти эти зависимости и запланировать независимые шаги обработки в другом порядке, который может произойти либо во время компиляции , либо во время выполнения, используя такие концепции, как выполнение вне очереди . Два (очень старых) метода, о которых я знаю, - это алгоритм Томасуло и Табло .

Совершенно другой подход - это архитектура потока данных, который, однако, скорее используется для некоторых специальных приложений, а не в системах общего назначения.

...