Я предполагаю, что "уведомления" - это ваш CF, а "Джон", "Анна" и т. Д. - ключи строк.
Предполагая, что данные для каждого уведомления относительно малы или не требуют обновления, я предлагаю использовать метки времени для имен столбцов и поместить все сериализованное уведомление (возможно, в виде json) в значение столбца. Это позволит вам очень эффективно получать последние N уведомлений и легко удалять отдельные уведомления.
При использовании pycassa запрос на выборку и удаление могут выглядеть следующим образом:
def get_notifications_for(user):
cols = notifications_cf.get(user, column_count=10)
return map(json.loads, cols.values())
def delete_notification(user, notification_timestamp):
notifications_cf.remove(user, columns=[notification_timestamp])
Я предполагаю, что вы установили для компаратора значение LongType(reversed=true)
, что означает, что ваши уведомления будут храниться в обратном хронологическом порядке, если вы используете временные метки для имен столбцов.