Классика баз данных - статьи

       

Правило 4: Генерируйте предсказуемые результаты


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

Например, рассмотрим два потока, один из которых содержит данные TICKS с полями

TICKS (stock_symbol, volume, price, time)

а другой поток (SPLITS) содержит сообщения о дроблении акций в формате

SPLITS (symbol, time, split_factor)

Типичное приложение потоковой обработки будет производить в реальном времени стоимость набора акций с учетом дробления. В стоимости должен быть учтен совокупный видимый коэффициент дробления (split_factor). Правильный результат такого вычисления может быть произведен системой в порядке возрастания времени, независимо от того, когда сообщения поступают в систему. Если сообщение о дроблении обрабатывается без учета этого порядка, то стоимость акции с учетом дробления будет неверной для одного или нескольких сообщений об изменении стоимости акции. Заметим, что недостаточно просто упорядочивать сообщения до их ввода в систему - корректность можно гарантировать только в том случае, когда во всем обрабатывающем конвейере системы поддерживается упорядоченная по времени, детерминированная обработка.

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

Четвертое требование состоит в том, что процессор обработки потоков должен гарантировать предсказуемые и повторяемые результаты.



Содержание  Назад  Вперед