Как акка-персистенция-кассандра и теги играют вместе? - PullRequest
0 голосов
/ 18 марта 2020

до сих пор я использовал только akka-persistence-cassandra с плагином журнала и не обращал слишком много внимания на теги.

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

Теперь я понимаю, что теги существуют, так что Cassandra может создавать над тегами и разделами timebuckets, чтобы иметь возможность предотвращать горячие точки в Cassandra.

Когда я настраиваю плагин cassandra-journal и теги событий, я вижу следующие таблицы в пространстве ключей Cassandra, сообщения, метаданные, tag_scanning, tag_views, tag_write_progress ...

Теперь, если не настроены теги, плагины журнала записывают только в таблицу сообщений, но если теги событий также настроены, они сохраняются как в сообщениях, так и в таблицах tag_scanning, tag_views, tag_write_progress ...

  • Итак, первый вопрос, в чем преимущество или причина написания обоих сообщений и tag_scanning, tag_views, tag_write_progress, делает т не означает ли это больше нагрузки для Кассандры?

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

Что мне здесь не хватает?

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

1 Ответ

0 голосов
/ 24 марта 2020

Теги не указаны c для подключаемого модуля журнала Cassandra, но представляют собой общую концепцию c для Akka Persistence / Akka Persistence Query, позволяющую приложению, получающему событие, пометить подмножество событий и отдельно использовать эти события в качестве потока. .

Маркировка обычно используется для разделения / разбиения при обновлении прогноза на несколько рабочих, см., Например, образцы CQRS Akka здесь: https://github.com/akka/akka-samples/tree/2.6/akka-sample-cqrs-scala https://github.com/akka/akka-samples/tree/2.6/akka-sample-cqrs-java

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

tag_write_progress и tag_scanning - подробности реализации, связанные с согласованность и упорядоченность событий с тегами.

Если вы не используете теги в своем приложении, вы можете полностью отключить поддержку events-by-tag в плагине, поскольку есть некоторые накладные расходы, связанные с обслуживанием связанных таблиц.

...