2010-05-08 71 views
0

我一直轉圈圈什麼必須是一個非常簡單的挑戰,但我想這樣做,從一開始的最有效方式獨特的物品清單。因此,我觀看了Brett Slatkin的谷歌IO視頻(2008 & 2009),關於構建可擴展的應用程序,包括http://www.youtube.com/watch?v=AgaL6NGpkB8,並閱讀文檔,但作爲n00b,我還不確定。顯示用戶對Java的谷歌應用程序引擎

我試圖建立類似於在用戶呈現他們打分的項目原來的「hotornot」上GAEJ的應用程序。一旦他們評價,他們會看到另一個他們以前從未見過的。
我的問題是這樣的;預先做一個查詢來抓取x個項目(比如說100)並將它們放在一個列表中(存儲在memcache中?),還是最好在每個評級之後簡單地對新項目進行查詢。
爲了跟蹤用戶看到的項目,我計劃將這些項目的密鑰保存在用戶實體的列表屬性中。這聽起來合理嗎?

我真的得自己搞不清楚這個所以任何幫助,將不勝感激。

回答

0

我會親自做這樣的事情:

當用戶登錄,創建的,他們還沒有看到100個隨機ID的列表。然後,當他們點擊下一個項目時,對數據存儲進行查詢並將列表前面的一個拉回來。

如果這最終太慢,你可以嘗試緩存,但它是真的很難MEMCACHE你整個數據庫。即使加載他們需要的100個人也很難(隨着用戶數量的增加)。爲1個網頁加載拉回1入口並不慢。每次點擊將發佈1條評論,並將1條條目退回。簡單來說,數據存儲中只有少數MS。這樣做,他們還沒有看到100個隨機ID可以是緩慢的,這樣纔有意義,以提前做好,並保持周圍(在他們的請求或會話取決於你是如何做的是...)

+0

非常感謝你的答案。獨自工作,很高興知道我正朝着正確的方向前進。再想一想(經過一段時間的睡眠之後!)我估計沒有必要在批量生產中抓住一堆ID。我想我會保持簡單並獲取用戶沒有看到的隨機ID。他們提交評分後,只需使用上面鏈接的Google IO演示文稿中介紹的合併連接技術再次獲取。 我假設做這種讀取的成本可以忽略不計,並且隨着用戶數量的增加而縮放。 謝謝。 – James 2010-05-09 13:02:16