App Engine数据存储+社交应用程序 - 结构&搜索N-D稀疏矩阵

时间:2009-11-16 08:47:01

标签: google-app-engine facebook nosql

IIRC,每个Facebook用户可以拥有5000个朋友。平均值是130,但最高值要高得多。这些朋友中的每一个都可以拥有从一组数百万中抽取的零个或多个实体。例如,查看这些实体的子集,按N轴分组(例如按类别和大小),您如何找到朋友喜欢的那些?

使用GAE,成本是计算时间而不是数据大小。您不能在搜索时查找给定类别和大小的任何朋友的所有条目。您可以在每个朋友执行操作时为用户添加条目,但这意味着每次朋友执行某项操作时最多可输入5000个数据条目。这是很多CPU时间,即使在后台也是如此。你也会想念那些尝试推出应用程序的新朋友,他们在最初添加时错过了。尝试划分空间是有意义的,但是朋友们以非常难以组合的方式进行链接。

有什么想法吗?你有没有解决类似的问题?

1 个答案:

答案 0 :(得分:1)

尝试使用低级数据存储API,项目ID作为键,“朋友”ID作为属性名称(在这种情况下属性值为true或false)。我认为使用密钥过滤器查找必须非常快。