2010-12-14 104 views
1

的问题是有点类似叽叽喳喳/ Facebook的:缩放跟随模型

  • 追随者和以下
  • 用户添加项目

随后你看到所有你的人添加的项目以下。

问题A:如何保持对正在跟随增长数据集良好工作的人添加的项目的查询?

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

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

回答

1

问题A:如何保持对正在跟随增长的数据集良好工作的人添加的项目的查询?

从数据集开始(谁是我的追随者/我追随谁);人们可以将这些值保存为元组并将它们分割成多个SQL数据库(尽管我怀疑即使对于twitter大小数据库也真的需要真正的分割)。这将给出被跟踪的人的名单。其次,可以很容易地查询按照追随者排序的项目表;并且如果需要的话,也可以将其分割成大量的数据集。

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

可以指定一个主数据库(集群)和一个从数据库(集群),并将数据从主机复制到从机。但是,这确实意味着数据总是保存到主数据库中。数据查询可以在本地完成。

另一种选择是在主 - 主设置中运行数据库(集群)但这通常比较麻烦,因此它是值得的。