Модель Кассандры для проката журнала действий тысяч актеров? - PullRequest
0 голосов
/ 22 сентября 2018

Одна из таблиц в проекте java / cassandra, которую я пробую, предназначена для просмотра журнала последних действий от актера, заказанного последним.

Таблица:

> keyspace.action_log(
>     actor_id timeuuid,
>     ts bigint,
>     action_type text,
>     action_data text,
>     topic text,
>     PRIMARY KEY (entity_id,ts))  WITH CLUSTERING ORDER BY (ts DESC)  AND default_time_to_live = 259200  AND compaction = {    'class':
> 'org.apache.cassandra.db.compaction.TimeWindowCompactionStrategy',   
> 'compaction_window_unit': 'HOURS',    'compaction_window_size': '12' }

Некоторое время это работало хорошо, но недавнее изменение требований заставило некоторых актеров изменить "action_data" с небольшой строки на довольно большой фрагмент текста (~ 50 КБ).Похоже, что это нарушило текущую настройку, поскольку все записи в базу данных завершились неудачно из-за того, что «запрос хоста недоступен», и я проверил задержку записи таблицы, и она составила около 10000 мс.

Плохо ли разработана эта таблица/ Есть ли какие-либо улучшения, которые я мог бы выделить?Любая помощь будет принята с благодарностью, так как я все еще изучаю Кассандру.

Использование очень тяжелое при записи, с чтениями, приходящими на основе id и ts (в значительной степени таблица, которая загружает последние значения x и больше при необходимости)

...