我已经为社交网络创建了一个图形模型,并且需要一些关于缩放设计的具体建议.请原谅这些问题,但我没有找到很多明显的例子......
注意:状态更新和活动节点/关系是链接列表 - 最新的条目不断放在列表的顶部.
链接列表允许生成新闻源,但每个用户可能有数百条记录 - 我认为即使数据按日期降序排列,限制子句也不够.我是否必须拥有一个单独的链接列表,该列表仅包含最新的10个状态/活动更新)并不断替换该列表上的头部以获得更好的活动源生成,或者将一个列表正确排序并完成工作(使用限制条款)
这些节点都具有属性(带有内容,ID等的json数据) - "全局"索引如何在这里发挥作用,以便我可以找到喜欢Depeche Mode的用户而无需等待一生的结果?我知道如何将一个节点添加到索引,只是想知道我是否错过了这里的部分图片..
安全性 - 登录和密码..我认为图形数据库可以存储它们,但我认为这是一个安全风险 - 将它保存在postgres等会更好吗?
您将如何改进此模型以处理可伸缩性?想象一下,有2000万用户正在敲打这个......
想象一下4000万用户 - 在可扩展性方面,这个模型出了什么问题?

第1部分.
您可以编写符合您需要的cypher或gremlin查询.请记住,您可以在边缘上向前和向后移动.给定一个用户,它应该总是相对恒定的时间来完成它们所做的最后十件事.
第2部分.
如果您将某个波段表示为某种类型的实体,请对该属性进行索引.然后,您将能够拉出该节点并向外遍历以查找喜欢该频段的所有用户.如果您没有独立实体,或者它以某种方式隐含,您将需要为相应的图形数据库启用全文搜索.
第3部分.
详细了解安全性.您要存储的唯一内容是用户密码的正确哈希字符串.那时你可以使用任何图形数据库和良好的安全实践.
第4/5部分.
一旦你有一个用户,担心下一千个用户.
当你有一千个用户时,担心下一个十万用户.
当你有十万,担心下一百万.
如果您有一百万用户,您可以开始担心您提出的问题.
在你想要扩展到至少0.1%的用户/音量之前,尝试提出有关如何扩展到一定大小的问题是精神上的手淫.