Графическая модель Neo4j для социальной сети
Я создал графовую модель для социальной сети и нуждался в некоторых конкретных советах относительно дизайна в отношении масштабирования. Извините за эти вопросы, но я не нахожу очень много ясных примеров ...
ПРИМЕЧАНИЕ. Обновления статуса и узлы / отношения активности представляют собой связанные списки, причем самые новые записи постоянно помещаются вверху списка.
Связанные списки позволяют создавать новостные ленты, но на каждого пользователя могут приходить сотни записей - я полагаю, что ограничение limit недостаточно, хотя данные располагаются в порядке убывания по дате. Нужно ли иметь отдельный связанный список, который будет содержать только самые последние 10 обновлений статуса / активности), и постоянно заменять заголовок в этом списке, чтобы получить лучшую генерацию фида активности, или один список будет правильно отсортирован и будет выполнять работу (с предельная оговорка)
Все эти узлы имеют свойства (данные json с контентом, идентификаторы и т. Д.) - как здесь задействуются «глобальные» индексы, чтобы я мог найти, например, пользователей, которым нравится Depeche Mode, не дожидаясь результатов на протяжении всей жизни? Я знаю, как добавить узел к индексу, просто интересно, если я пропускаю часть изображения здесь ..
Безопасность - логины и пароли. Я бы предположил, что графическая база данных может их хранить, но я бы предположил, что на данный момент это угроза безопасности - лучше ли хранить это в postgres и т. Д.?
Как бы вы улучшили эту модель для обеспечения масштабируемости? Представьте себе 20 миллионов пользователей, которые бьют по этому вопросу ..
Представьте себе 40 миллионов пользователей - что не так с этой моделью, когда речь заходит о масштабируемости?