Масштабирование модели последователя - PullRequest
1 голос
/ 14 декабря 2010

Проблема в чем-то похожа на твиттер / фейсбук:

  • подписчики и подписчики
  • пользователи добавляют элементы

Впоследствии вы видите элементы, добавленныевсе люди, за которыми вы следите.

Проблема A: как сохранить запрос для элементов, добавленных людьми, за которыми вы хорошо работаете, с растущими наборами данных?

Проблема B: мы наблюдаем географически разбросанный трафик,большая база пользователей в Нидерландах и Бразилии.любое решение, вероятно, должно было бы предусматривать использование баз данных в нескольких центрах обработки данных.

Мы работаем со стеком django / python.Кэширование уже запущенного пограничного сервера.(Анонимные пользователи получают кэшированную версию, вошедшая в систему пользовательская версия сначала запускается через службу анализа шаблонов второго уровня)

1 Ответ

1 голос
/ 14 декабря 2010

Проблема A: как сохранить запрос для элементов, добавленных людьми, за которыми вы хорошо работаете, с растущими наборами данных?

начиная с набора данных (кто мои последователи / за кем я следую); Можно сохранить эти значения в виде кортежей и сегментировать их по нескольким базам данных SQL (хотя я сомневаюсь, что настоящая сегментация действительно необходима даже для баз данных размером с твиттер). Это дало бы список людей, за которыми следят. Во-вторых, можно легко запросить таблицу для последователей -> предметов, отсортированных по подписчикам; а также сегментируется при необходимости с учетом огромных наборов данных.

Проблема Б: мы видим географически разбросанный трафик. большая база пользователей в Нидерландах и Бразилии. любое решение, вероятно, должно было бы учитывать базы данных в нескольких центрах обработки данных.

можно указать основную базу данных (кластер) и подчиненную базу данных (кластер), а также реплицировать данные с главного на подчиненное. Однако это означает, что данные всегда сохраняются в базе данных master. Запросы данных могут выполняться локально.

Другой вариант - запустить базу данных (кластеры) в настройке мастер-мастер; но это, как правило, больше проблем, чем стоит.

...