В моем приложении мы храним логи в Кассандре. Пользователь может просматривать журналы после указания даты начала и окончания журналов. Мы выбираем данные на основе этих дат и также осуществляем разбиение на страницы, так что конечная дата первой страницы становится начальной датой для страницы 2.
Таблица:
CREATE TABLE audit_trail (
account_id bigint,
user_id bigint,
time timestamp,
category int,
ip_address text,
action_description text,
additional_data map<text,text>,
source int,
source_detail varchar,
PRIMARY KEY ( (account_id), time )
) WITH CLUSTERING ORDER BY (time DESC);
Проблема :
Журналы, которые мы получаем, не отсортированы, а разбросаны. Например, при нажатии на запрос для журналов за день с 1 по 10 мы могли бы получать журналы за день 10,8,9,2,1 или в любом другом порядке.
Цель:
- , чтобы получить журналы в отсортированном порядке, чтобы журналы с первого дня отображались вверху, а затем со второго дня и т. Д.
- нет данных перетасовки. Как и при столкновении, таблица в Cassandra реструктурируется, что может привести к получению данных, которые мы уже видели на странице 1 на странице 2.
Пропускная способность данных велика, обычно около 1000 журналов в час.