Фреймворк Akka (Scala) — агенты для хранения большого сложного состояния

Недавно я открыл для себя фреймворк akka и понял, что он хорошо подходит для одного из моих проектов. Я должен сказать, что я очень впечатлен этим до сих пор.

В моем проекте мне нужно, чтобы более 1 млн сущностей получали обновления состояния с очень высокой скоростью. Естественно, актеры akka кажутся первым выбором. Однако я задаюсь вопросом, не лучше ли мне использовать агентов для хранения обновлений состояния (пока что у моих акторов есть только два сообщения — одно для обновления состояния, а другое для его чтения — и я не верю, что это будет когда-нибудь изменится).

Глядя на несколько примеров для агентов, у меня возникает ощущение, что они не предназначены для хранения большого сложного состояния. Я ошибся?

Короче говоря, я хотел бы сохранить что-то вроде:

case class AgentState(val list1 : List[Int], val list2 : List[Int], val peers : List[Agent])

Очевидно, что обновление состояния становится менее красивым, чем в игрушечных примерах, где вы используете целые числа;)

Имеет ли тогда смысл иметь агента? Как бы вы это сделали?

Спасибо за ваши ответы!

-LP


person Lord Phoenix    schedule 20.08.2011    source источник


Ответы (1)


Агенты Akka поддерживаются Актерами, поэтому это имеет смысл только в том случае, если вы хотите иметь одновременных читателей и последовательных авторов.

person Viktor Klang    schedule 21.08.2011