Это хороший, эффективный способ хранения и извлечения данных с использованием NOSQL DBMS? - PullRequest
0 голосов
/ 28 августа 2018

Моя цель - создать ленту новостей для каждого пользователя в зависимости от его интересов, используя apache cassandra, я успешно смог это сделать, но я не знаю, как он будет работать, когда сервер находится под нагрузкой и заполнен запросами. Вот что я сделал для достижения своей цели:

Вот как выглядит таблица:

  id   | content| contentid| date       | poster| posterusername | viewer
  89102|sometext| 1585     | *timestamp*| 5332  | thatcher       |   7480
  //id is the primary key
  //content is the text posted
  //contentid is the id of the post that uniquely identifies it
  //date is the timestamp of the time it was posted at
  //poster is the users userId
  //posterusername is the users username
  //viewer is the one of the posters followers
  1. пользователь создает сообщение, количество созданных строк равно количество подписчиков у пользователя. Например, если у пользователя есть 50 подписчиков Будет создано 50 строк с содержанием поста

  2. Поскольку я использую кассандру, чтобы поддерживать процветание и эффективность базы данных, я должен избегать использования , позволяющего фильтровать , для этого я использую вторичный индекс на viewer колонка. Когда пользователь открывает канал новостей, этот запрос выполняется сервером SELECT * FROM content WHERE viewer = ?, а затем все сообщения, созданные пользователями, за которыми следит пользователь, извлекаются и отображаются для пользователя в пользовательском интерфейсе

Это хороший и эффективный способ создания новостной ленты? будет ли он работать хорошо, когда сервис наберет больше пользователей?

...