Comments 6
Спасибо за статью.
1) Отмечу, что даже если бы популярные системы поточной обработки (например Flink, Spark) поддерживали параллельное дублированное исполнение, которое называется в статье concurrent, его бы мало кто включал на практике, потому что цена ресурсов как правило оказывается важнее, чем гарантия отсутствия затупов. Кроме того, даже с дублированием такой гарантии нет, потому что --
2)
Если запустить параллельно два обработчика, то вероятность того, что обоим поплохеет ≃ 1e-8. А значит это событие наступит через 23 года! Да системы столько не живут, а значит этого не произойдет никогда!
Большинство причин падений и затупов коррелируют. Проблемы с сетью в облаке, деградация одного из транзакционных хранилищ (в которое будут пытаться писать оба дубля обработчика, дополнительно его нагружая). Например, вспомните глобальную катастрофу Amazon S3.
Разносить же дубли в разные облачные провайдеры в разных гео-регионах, и так же распределять все хранилища, означает целый новый класс проблем и просадку производительности.
1) Отмечу, что даже если бы популярные системы поточной обработки (например Flink, Spark) поддерживали параллельное дублированное исполнение, которое называется в статье concurrent,
Оно не зря называется concurrent, потому что если обработчик взаимодействует с одним и тем же набором данных, то возникает конкуренция за обновление, а не параллелизация действия.
его бы мало кто включал на практике, потому что цена ресурсов как правило оказывается важнее, чем гарантия отсутствия затупов.
Я предоставляю пользователям выбор: можно запускать в одном экземпляре, а можно в двух или даже более. Другие системы такого выбора не предоставляют от слова совсем.
Кроме того, даже с дублированием такой гарантии нет, потому что большинство причин падений и затупов коррелируют.
Кажется очевидным, что если проблемы коррелируют, то надо их решать. В данном случае в статье рассмотрен лишь один аспект, но чрезвычайно важный, который до сих пор никто не решал и даже не задумывался. Я лишь немного опережаю время.
Разносить же дубли в разные облачные провайдеры в разных гео-регионах, и так же распределять все хранилища, означает целый новый класс проблем и просадку производительности.
Цена этого может быть велика. Однако на сегодняшний день существуют подходы, которые позволяют решить все эти проблемы, причем относительно несложно.
Но это, понятно, серьезно бы увеличило размер и без того немаленькой статьи.
Гетерогенная конкурентная обработка данных в реальном времени строго один раз