缩放跟随者模型

时间:2010-12-14 16:05:52

标签: python django nosql scaling partitioning

这个问题与twitter / facebook的问题有些相似:

  • 粉丝和关注
  • 用户添加项目

随后您会看到您关注的所有人添加的项目。

问题A:如何保持查询您跟随的人们在增长的数据集中正常运作的项目?

问题B:我们看到地理上分散的流量。荷兰和巴西的大用户群。任何解决方案都可能需要允许跨多个数据中心的数据库。

我们正在运行django / python堆栈。已经运行边缘服务器缓存。 (匿名用户获取缓存版本,登录用户版本首先通过二级模板解析服务运行)

1 个答案:

答案 0 :(得分:1)

问题A:如何保持查询您跟随的人们在增长的数据集中正常运作的项目?

从数据集开始(谁是我的粉丝/我跟随谁);可以将这些值保存为元组并将它们分割到多个SQL数据库中(尽管我怀疑即使对于Twitter大小的数据库也确实需要真正的分段)。这将列出被跟踪的人员名单。其次,可以很容易地查询跟随者排序的跟随者>项目表;如果需要,还可以根据庞大的数据集进行细分。

问题B:我们看到地理上分散的流量。荷兰和巴西的大用户群。任何解决方案都可能需要允许跨多个数据中心的数据库。

可以指定主数据库(集群)和从数据库(集群),并将数据从主服务器复制到从服务器。但是,这确实意味着数据始终保存到master数据库。数据查询可以在本地完成。

另一种选择是在主 - 主设置中运行数据库(集群);但这通常更麻烦,值得。