[#] Подводные камни для самодельной распределенности «из коробки» в С++ном акторном фреймворке
habrabot(difrex,1) — All
2017-03-30 22:00:06


[В комментариях][1] к последней статье про шишки, которые нам довелось набить за 15 лет использования акторов в C++, вновь всплыла тема отсутствия в [SObjectizer-5][2] распределенности «из коробки». Мы уже отвечали на эти вопросы множество раз, но очевидно, что этого недостаточно.



В SObjectizer-5 нет распределенности потому, что в SObjectizer-4 поддержка распределенности была, но по мере того, как расширялся спектр решаемых на SObjectizer задач и росли нагрузки на SObjectizer-приложения, нам пришлось выучить несколько уроков:


* под каждый тип задачи желательно иметь свой специализированный протокол. Потому что обмен большим количеством мелких сообщений, потеря части которых не страшна, сильно отличается от обмена большими бинарными файлами;
* реализация back-pressure для асинхронных агентов — это сама по себе непростая штука. А когда сюда еще и примешивается общение по сети, ситуация становится гораздо хуже;
* сегодня какие-то куски распределенного приложения обязательно будут написаны на других языках программирования, а не на C++. Поэтому требуется интероперабильность и наш собственный протокол, заточенный под C++ и SObjectizer, мешает разработке распределенных приложений.

Далее в статье попробуем раскрыть тему подробнее.

[Читать дальше →][3]

[1]: https://habrahabr.ru/post/324978/#comments
[2]: https://sourceforge.net/projects/sobjectizer/
[3]: https://habrahabr.ru/post/325248/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut