Что может быть самой легкой комбинацией плагина моментальных снимков и хранилища событий с точки зрения памяти и процессора?

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

Итак, есть ли какие-либо предложения, как лучше всего сочетать плагин моментальных снимков / хранилище событий, которое по-прежнему поможет нам оставаться легкими?

  • H2/Дерби + JDBC?
  • локальная MongoDB с --smallfiles?
  • пытаетесь каким-то образом использовать встроенный Mongo (все, что я видел до сих пор, только для целей тестирования, не уверен, что он достаточно стабилен)?
  • какая-то другая идея?

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


person Milan Aleksić    schedule 15.11.2014    source источник


Ответы (1)


Если вас беспокоит только размер моментального снимка или хранилища, вам следует рассмотреть следующее:

  1. Оптимизируйте данные, хранящиеся в журнале событий/моментальных снимков
  2. Используйте сериализатор, поддерживающий сжатие kryo / акка-крио-сериализация
  3. Выберите хранилище данных, которое поддерживает сжатие (например, cassandra ) и соответствующий плагин akka-persistence-cassandra< /а>

Конечно, все это может повлиять на производительность.

person hicolour    schedule 28.11.2014
comment
Я не думаю, что Кассандра легкая? 1) и 2) являются хорошими советами, чтобы уменьшить влияние, если мы решим остаться с файловым хранилищем для моментальных снимков. - person Milan Aleksić; 29.11.2014
comment
Да, Cassandra сама по себе не легкая, но я подумал, что вы не принимаете во внимание инфраструктуру. Если вы хотите свести к минимуму размер хранимых данных, а также инфраструктуру, вам следует использовать хранилище на основе файлов и файловую систему со встроенным сжатием «на лету». (например, ZFS, Reiser4) - person hicolour; 30.11.2014
comment
Всем хороших советов. Больше я думаю, что больше мне хочется просто настроить там тщательно настроенную базу данных PostgreSQL. При этом я подожду еще немного других идей и в противном случае приму ваш ответ. - person Milan Aleksić; 30.11.2014