2009-11-16 41 views
2

IIRC,每個Facebook用戶可以有5000個好友。平均值是130,但最大值要高得多。這些朋友中的每一個都可以'喜歡'零個或多個從一組數百萬個抽取的實體。當例如看着這些實體的一個子集,按N軸分組(如按類別和大小),你會如何找到那些朋友喜歡的東西?App Engine數據存儲+社交應用 - 結構和搜索N-D稀疏矩陣

使用GAE,成本是計算時間而不是數據大小。您不能在搜索時間查找給定類別和大小的任何朋友的所有條目。每個朋友執行操作時,您都可以爲用戶添加條目,但每次朋友執行操作時,這就意味着最多可能有5000條數據條目。這是很多CPU時間,即使在後臺。你也會想念新朋友嘗試應用程序,誰在最初添加時錯過了。嘗試分割空間是有道理的,但朋友之間的聯繫非常難以分組。

任何想法?你有沒有解決類似的問題?

回答

1

嘗試使用底層數據存儲API,其中項目ID作爲鍵和「朋友」ID作爲屬性名稱(在此情況下屬性值爲true或false)。我認爲使用關鍵過濾器的查找速度必須相當快。

+0

該方法存在一些問題,但使用屬性空間可能是解決方案的一部分,所以我會給你一個upvote!謝謝,德米特里。 – 2009-11-17 05:55:07