Мы используем cassandra для хранения данных чата. мы должны поддерживать все разговоры пользователей и сортировать их на основе полученных сообщений.Cassandra: Список последних покрытий для пользователя
Разговор: Является потоком сообщений от 2 или более пользователей. Беседы не имеют конечного времени и непрерывны.
Мы поддерживаем таблицу, в которой есть «пользователь для разговоров» на основе времени создания беседы. Но мы хотели бы отсортировать его на основе полученных сообщений.
Solutions
- Решение -1:
Я смотрел на аналогичный вопрос Cassandra: List 10 most recently modified records
, который предлагает использовать материализованное представление. Этот подход подходит для часто обновляемых записей, таких как сообщения.
- Решение -2: Используйте другую таблицу, чтобы поддерживать пользовательские вызовы в списке. Обновите список, когда сообщения будут отправлены/отправлены пользователю.
Учитывая вопрос об использовании, пожалуйста, предложите, что было бы лучшим решением.
Вы хотите, чтобы отсортировать изделия из хронографа "глобально"? Или вы хотите отсортировать их по разговора? – xmas79
Мы хотели бы отсортировать все пользовательские разговоры. Не требуется сортировать по всему миру. Подобно разговорам whatsapp, последняя конверсия должна выходить на первое место, как только в разговоре появляется новое сообщение. –
После моего ответа и вашего комментария, я думаю, что ваш вопрос не ясен. Кроме того, вы используете Cassandra-2.1, но ваше предлагаемое решение 1 предлагает материализованные виды, которые доступны только на Cassandra 3.0. – xmas79