Как смоделировать социальную ленту новостей на Google App Engine

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

Мы сначала смоделировали, публикуют - подписываются, "разветвляются" с помощью стандартных взглядов RDBMS. Это, казалось, работало сначала, но затем, начиная с работ оператора IN путем, которые это делает, мы быстро поняли, что не могли продолжить тот путь. Мы нашли презентацию Brett Slatkin с прошлых лет Google I/O, и мы теперь наблюдали ее несколько раз, но нам не ясно, как сделать это с "динамическими" списками получателя.

В чем мы нуждаемся, некоторые подсказки, как "думать" при моделировании этого.

6
задан David Underhill 21 July 2010 в 21:07
поделиться

1 ответ

Вставка ответа, полученного мной на этот вопрос, в группу 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. Надеюсь, они помогают, когда вы рассматриваете дизайн.
3
ответ дан 17 December 2019 в 18:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: