Как смоделировать ленту социальных новостей в Google App Engine - PullRequest
6 голосов
/ 15 марта 2010

Мы хотим реализовать «ленту новостей», где пользователь может видеть сообщения, передаваемые его друзьями, отсортированные сначала по самым новым сообщениям.Но лента должна отражать изменения в ее списке друзей .(Если она добавляет новых друзей, сообщения от них должны быть включены в фид, а если она удаляет друзей, их сообщения не должны включаться.) Если мы используем пример pubsub-test и прикрепляем список получателей ккаждое сообщение означает, что при подключении и отключении друзей многие пользователи манипулируют списками получателей сообщений.

Сначала мы смоделировали «разветвление» публикации-подписки с использованием традиционного мышления СУБД.Сначала казалось, что это работает, но потом, поскольку оператор IN работает так, как он работает, мы быстро поняли, что не можем продолжать идти по этому пути.Мы нашли презентацию Бретта Слаткина из Google I / O за последние годы , и мы уже несколько раз ее просматривали, но нам не ясно, как это сделать с помощью «динамических» списков получателей.1010 * Нам нужны некоторые подсказки о том, как «думать» при моделировании этого.

1 Ответ

3 голосов
/ 17 марта 2010

Вставка ответа, который я получил на этот вопрос, в Группе Google для Google App Engine http://groups.google.com/group/google-appengine/browse_thread/thread/09a05c5f41163b4d# Икай Л (Google)

Пара мыслей здесь:

  • удаление друзей - обычное явление? аналогично, добавление друзья общее событие? (Все относительно, относительно «чтения» новостной ленты)

  • Из того, что я помню, единственный способ сделать масштабное чтение - это написать данные несколько раз в народах потоки. Твиттер делает это, из чего Я помню, используя "в конце концов последовательная »модель. Вот почему ваш канал не будет обновляться в течение нескольких минуты, когда они находятся под тяжелым нагрузки. Общее мнение, тем не менее, является ли это реляционным, нормализованным Модель просто не будет работать.

  • движок Jaiku с открытым исходным кодом для вашего исследования: http://code.google.com/p/jaikuengine. Это работает на App Engine Надеюсь, что эти помочь, когда вы рассматриваете дизайн.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...