6

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

Мы сначала смоделировали публикацию-подписку «вентилятор» с использованием обычной СУБД мышления. Казалось, что это работает сначала, но тогда, поскольку оператор IN работает так, как мы это делаем, мы быстро поняли, что мы не сможем продолжить этот путь до . Мы нашли Brett Slatkin's presentation from last years Google I/O, и мы сейчас смотрели его несколько раз, но нам не ясно, как это сделать с «динамическими» списками получателей.

Нам нужны некоторые подсказки о том, как «думать» при моделировании этого.

ответ

3

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

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

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

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

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