Одна из таблиц в проекте 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 и больше при необходимости)